MATLAB: How to plot two columns when another column has a specified value

catagoryexcelgroupinglogical?MATLABplotscatter

Hello
I have an excel file
I need to plot two of the columns when another column has a specified value(string)
The following code does not work, I want to have red circle when the 2nd column is "dipslip" and blue stars when 2nd column is "strikeslip"
filename = 'sim_result.xlsx';
sheet = 1;
[num,txt,raw] = xlsread(filename,sheet)
Area=cell2mat(raw(2:end,3));
moment=cell2mat(raw(2:end,5));
type=raw((2:end),2);
%scatter(cell2mat(raw(2:end,3)),cell2mat(raw(2:end,5)))
scatter(moment(type=='dipslip'),Area(type=='dipslip'),'or')
scatter(moment(type=='strikeslip'),Area(type=='strikeslip'),'sr')
How can I do this
Thank you
p.s. I can not use gscatter

Best Answer

  • idx1 = contains(type,'dipslip') ;
    idx2 = contains(type,'strikeslip') ;
    figure
    hold on
    plot(moment(idx1),Area(idx1),'Or')
    plot(moment(idx2),Area(idx2),'sr')
    If contains is not available, use strcmp