例如: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 ==> plotError in color/linetype argument.Error in ==> D:\programfile\matlab\work\grey.mOn line 26 ==> plot(X(i,:),'s(i)u(i)-')谢谢楼下解答,经运行确实是对的。能告诉我为什么吗?我看了很多书上绘图格式都是这样: plot(x,y,'rd-')
楼上的回答其实没有必要用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),'-']);即可。
clear;clcX=[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