matlab 循环绘图,如何加入线形,颜色,点标记???高手看看哪里有错了。。

例如:X=[1 3 6 ;7 8 10 ;6 8 4;4 5 6]
s=['rbcgykm'] %颜色属性
u=['do*x+vp'] % 点标记属性
for i=1:4
plot(X(i,:),'s(i)u(i)-') %后面的属性试了很多种排法,语法都是错的。
hold on
end
运行结果

??? Error using ==> plot
Error in color/linetype argument.

Error in ==> D:\programfile\matlab\work\grey.m
On line 26 ==> plot(X(i,:),'s(i)u(i)-')
谢谢楼下解答,经运行确实是对的。能告诉我为什么吗?我看了很多书上绘图格式都是这样:
plot(x,y,'rd-')
最新回答
乱世魔女

2024-09-21 00:14:25

楼上的回答其实没有必要用num2str,因为s和u两个数组本身已经是字符串了。plot(x,y,'properties')的语法就是后面用一个字符串描述plot(x,y)所画线的性质,一般情况下直接输入字符串是用引号,相当于直接定义字符串,但是因为楼主已经提前定义了字符串数组,所以在引用的时候直接使用数组相应元素就可以了,不需要用引号引起来。这样matlab会以为用s(i)u(i)这样的属性来画图,自然会提示错误。

方括号表示将字符串连起来,不同字符之间用空格或逗号分开。原来的plot语句只需要替换成
plot(X(i,:),[s(i) u(i) '-']);

plot(X(i,:),[s(i),u,(i),'-']);
即可。
没什么大不了

2024-09-21 00:26:45

clear;clc
X=[1 3 6 ;7 8 10 ;6 8 4;4 5 6];
s=['rbcgykm']; %颜色属性
u=['do*x+vp']; % 点标记属性
for i=1:4
plot(X(i,:),[num2str(s(i)) num2str(u(i)) '-'])
hold on
end