# How to plot two independent curves as symbols in one graph?

11 views (last 30 days)
Emerson De Souza on 23 Sep 2012
GOAL: I have two independent arrays y1 and y2 and want to plot them depending on x1 and x2 in the same graph. The curves should be plotted as symbols and not as lines. I wrote the following lines:
X1=[1:99,1]';
X2=[1:199,1];
Y1=rand(100,1);
Y2=rand(200,1)*-1;
h=plot(X1,Y1,X2,Y2);
axis([0 200 -1 1])
%Curve Properties
set(h,{'Color'},{'r';'g'})
set(h,{'LineStyle'},{'s';'v'})
set(h,{'MarkerSize'},{4;4})
PROBLEM: Unfortunately, the curves are not plotted as symbols and the colors are not accepted also. I obtain the following error:
Error using set
Value cell array handle dimension must match handle vector length
I read the instructions to use "set" but did not understand how to correct the command lines. I wonder if someone could help me to fix this.
Emerson

Wayne King on 23 Sep 2012
Edited: Wayne King on 23 Sep 2012
I don't have any problem with your code, what version of MATLAB are you using? Do these work for you?
X1 = [1:99,1]';
X2 = [1:199,1];
Y1 = rand(100,1);
Y2 = rand(200,1)*-1;
plot(X1,Y1,'rs','markersize',4); hold on;
plot(X2,Y2,'gv','markersize',4)
axis([0 200 -1 1])
Another way:
X1 =[1:99,1]';
X2 =[1:199,1];
Y1 = rand(100,1);
Y2 = rand(200,1)*-1;
h = plot(X1,Y1,X2,Y2);
axis([0 200 -1 1])
set(h(1),'color','r','linestyle','s','markersize',4);
set(h(2),'color','g','linestyle','v','markersize',4);
Emerson De Souza on 23 Sep 2012
Interesting, I use R2012a, and now it is working also. It may have happened that I accidentally removed the comment % from the line Curve Properties. I tried this and the plot is executed but with the error above. I'm very sorry and thank you a lot for your help. Wish you a nice day
Emerson