matlab以功能方式绘制数据

时间:2013-11-24 04:51:53

标签: matlab

我得到了一些这样的数据,

 76.09879   87.42057    1.00000
 84.43282   43.53339    1.00000
 95.86156   38.22528    0.00000
 75.01366   30.60326    0.00000
 82.30705   76.48196    1.00000
 69.36459   97.71869    1.00000
 39.53834   76.03681    0.00000
 53.97105   89.20735    1.00000
 69.07014   52.74047    1.00000
 67.94686   46.67857    0.00000
 70.66151   92.92714    1.00000
 76.97878   47.57596    1.00000
 67.37203   42.83844    0.00000

我想要做的是将所有这些点绘制为第一个为X,第二个为Y, 如果第三个值是0,以'ko'作为参数,则使用'k +'

我想知道我是否可以使用像

这样的功能样式代码
plot(data(:,1),(:,2),%a  function to turn 0 to 'k0',1 to 'k+');

绘制数据?

ps:我使用mathematica很多,这就是为什么我要问这种问题

2 个答案:

答案 0 :(得分:2)

positive = find(y==1);
negative = find(y==0);

plot(X(positive,1),X(positive,2),'k+');
plot(X(negative,1),X(negative,2),'ko');

答案 1 :(得分:1)

不,但你可以这样做:

plot(data(data(:,3)==1,1), data(data(:,3)==1,2), 'k+', ...
     data(data(:,3)==0,1), data(data(:,3)==0,2), 'ko')

或者这个,但这更加丑陋:

plot(data(logical(data(:,3)),1), data(logical(data(:,3)),2), 'k+', ...
     data(!logical(data(:,3)),1), data(!logical(data(:,3)),2), 'ko')