我有一个矩阵“容量”,我想绘制它的行,为此我使用了一个循环,我的代码是
for j_1=1:8
plotStyle = {'k -','r +','g *','b.','y o','r--','b d','g s'};
hold on;
plot(x_1,capacity(j_1,:),plotStyle(j_1));
end
hold off;
x_1只是x轴,x_1中的元素数等于容量列数。但是我收到的错误是:
使用情节
时出错无效的第一个数据参数
varyDiffusioncofficient出错(第124行)
积(X_1,容量(j_1,:),plotStyle)
答案 0 :(得分:1)
编辑:您需要做的就是在绘图调用中用花括号替换圆括号,即
plot(x_1,capacity(j_1,:),plotStyle{j_1});
或者,您可以将颜色和线条样式分开并以这种方式进行调用。当您制作更大的图并希望通过颜色和线条组合以不同方式循环时,这可能很方便。
capacity = rand(8,8); % test data for a workable example
x_1 = 1:8;
for j_1=1:8
linestyle = {'-','+','*','.','o','--','d','s'};
color = {'k','r','g','b','y','r','b','g'};
hold on;
plot(x_1,capacity(j_1,:),'color',color{j_1},'linestyle',linestyle{j_1});
end
hold off;
答案 1 :(得分:0)
您的问题是访问具有正常括号()
的单元格数组,您应该使用花括号{}
。
plotStyle = {'k -','r +','g *','b.','y o','r--','b d','g s'};
% plotStyle(1) = {'k -'} : cell
% plotStyle{1} = 'k -' : string
所以
hold on; % Move the hold and style assignment outside the loop for efficiency
plotStyle = {'k -','r +','g *','b.','y o','r--','b d','g s'};
for j_1=1:8
plot(x_1,capacity(j_1,:),plotStyle{j_1});
end
hold off;