作业帮 > 综合 > 作业

matlab 我有这样一个矩阵M (3列N行):x y z1 4 52 3 342 44 764 23 45 6 93

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/04 06:16:17
matlab
我有这样一个矩阵M (3列N行):
x y z
1 4 5
2 3 34
2 44 76
4 23 4
5 6 9
3 5 6
2 4 7
.
我想画出第二列y 与第三列z的关系,同时用不同颜色表示每行相对应的x值
如果用plot(M(:,2),M(:,3))的话,所有的颜色都是一样的.怎样才能去别处对应的x的值呢?

怎样才能区别出对应的x的值呢?(上面写错了.)

例如上面的图,横坐标和纵坐标分别对应第二列y 和第三列z,然后第一列x=600对应红色,x=1800对应蓝色,等等.
第二列第三列为横纵坐标,第一列对应的值表示成不同颜色
那你想画的是一条曲线不同位置有不同颜色,还是把第一列相同的值作为一条曲线,有几个值就画几条曲线?
再问: 我想把第一列相同的值作为一条曲线,有几个值就画几条曲线。 请问怎么画呢
再答: clear;clc
A =[8.0000    0.8188    0.7303
    5.0000    0.4608    0.2284
    8.0000    0.4302    0.4170
    5.0000    0.8560    0.4150
    3.0000    0.2974    0.0990
    5.0000    0.1911    0.0954
    8.0000    0.7349    0.6705
    3.0000    0.4507    0.1497
    3.0000    0.6932    0.2290
    8.0000    0.1370    0.1366
    3.0000    0.9016    0.2960
    8.0000    0.8704    0.7646
    3.0000    0.0056    0.0019
    8.0000    0.0099    0.0099
    5.0000    0.6873    0.3369
    5.0000    0.3461    0.1722
    8.0000    0.6458    0.6019
    3.0000    0.4574    0.1519
    5.0000    0.8159    0.3967
    3.0000    0.9830    0.3218
    3.0000    0.4122    0.1370
    3.0000    0.6501    0.2150
    5.0000    0.4225    0.2097
    8.0000    0.9669    0.8231
    5.0000    0.1660    0.0829];%用你自己的数据代替
B=unique(A(:,1));
n=length(B);
c=hsv(n);
hold on
for k=1:n
    temp=sortrows(A(A(:,1)==B(k),2:3));
    plot(temp(:,1),temp(:,2),'color',c(k,:));
end
legend(arrayfun(@(k)sprintf('x=%g',k),B,'uniformoutput',0))