Plot Matrix Columns in a Loop

2 Ansichten (letzte 30 Tage)
JacquelineK
JacquelineK am 10 Sep. 2017
Bearbeitet: Cedric am 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 Kommentare
José-Luis
José-Luis am 10 Sep. 2017
Bearbeitet: José-Luis am 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 am 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 :)

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Jose Marques
Jose Marques am 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 Kommentar
JacquelineK
JacquelineK am 10 Sep. 2017
Bearbeitet: Cedric am 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graphics Performance finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by