Plot Matrix Columns in a Loop

3 views (last 30 days)
JacquelineK
JacquelineK on 10 Sep 2017
Edited: Cedric on 10 Sep 2017
I have matrix X which is 225 by 6. And vector y which is 225 by 1. y is a binary with values 0 or 1. What I need to accomplish is to plot every column in X with y seperately.
Just a short example For instance:
x1 x2 x3 (x4 -x6)etc y
26 0,01 -1,15 0
25 0,025 1,58 1
20 0,185 2,57 1
I need to plot x1 with y, x2 with y etc... for pos=find(y==1) and neg=find(y==0)
I only accomplished to plot all column with y. But the is not satisfactory because the columns in X have different ranges of values.
*function plotData(X,y)*
pos = find(y==1);
neg = find(y==0);
plot(X(pos,1),X(pos,2),X(pos,3),X(pos,4),X(pos,5),X(pos,6),'kx','MarkerSize',5,'Color','s')
hold on
plot(X(neg,1),X(neg,2),X(neg,3),X(neg,4),X(neg,5),X(neg,6),'ko','MarkerSize',5,'Color','r')
*end*
But this way it plots all columns at once. How can I do it seperately?
Thanks in advance.
  4 Comments
José-Luis
José-Luis on 10 Sep 2017
Edited: José-Luis on 10 Sep 2017
I still don't follow. You won't get a "scatter" unless by pure random luck there's an equal number of zeros and ones in y.
JacquelineK
JacquelineK on 10 Sep 2017
I plotted each x with y now. This is what I got for FirmSize.
It is still not what I imagined, but better than before :)

Sign in to comment.

Answers (1)

Jose Marques
Jose Marques on 10 Sep 2017
Hello, Jacqueline Kpognon. Do you want to differents figures? Try this:
pos = find(y==1);
neg = find(y==0);
plot(X(pos,1),X(pos,2),X(pos,3),X(pos,4),X(pos,5),X(pos,6),'kx','MarkerSize',5,'Color','s')
figure();
plot(X(pos,1),X(pos,2),X(pos,3),X(pos,4),X(pos,5),X(pos,6),'ko','MarkerSize',5,'Color','r')
  1 Comment
JacquelineK
JacquelineK on 10 Sep 2017
Edited: Cedric on 10 Sep 2017
Hello Jose,
I wrote a mistake there. First plot is for x(pos) and second plot is for x(neg).
plot(X(pos,1),X(pos,2),X(pos,3),X(pos,4),X(pos,5),X(pos,6),'kx','MarkerSize',5,'Color','s')
plot(X(neg,1),X(neg,2),X(neg,3),X(neg,4),X(neg,5),X(neg,6),'ko','MarkerSize',5,'Color','r')
I tried your modification. It opens 2 figures. the second one is empty.
I am trying to plot x1 with y==1 and y==0 and then x2 with y==1 and y==0.
I thought a loop would help me get it, but I can't figure it out.

Sign in to comment.

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!