我有以下代码:
SimRun = 0
Count = 0
for b = 1:0.5:3000
.
.
.
.
Count = Count + 1;
ArrayT(Count) = Time;
ArrayTgo(Count) = tgo;
ArrayY(Count) = Y;
ArrayYD(Count) = YD;
end
SimRun = SimRun + 1;
MAT_ArrayT{SimRun,:} = ArrayT;
MAT_ArrayTgo{SimRun,:} = ArrayTgo;
MAT_ArrayY{SimRun,:} = ArrayY;
MAT_ArrayYD{SimRun,:} = ArrayYD;
如你所见,我有2个for循环。从内部循环我收到一个向量,从外部循环我收到一个单元格数组,其中每个单元格是一个向量。
现在,我想将单元格数据绘制成基本上大约6000行,我按如下方式进行绘制:
for i = 1:SimRun
figure(1)
hold on
plot(MAT_ArrayT{i,:},MAT_ArrayY{i,:})
figure(2)
hold on
plot(MAT_ArrayT{i,:},MAT_ArrayYD{i,:})
end
然而,这个解决方案需要花费很多时间来绘制所有行。
有没有更好的解决方案来存储"线"并在最后一次击中所有这些?
谢谢。
答案 0 :(得分:0)
plot
命令采用矩阵并将每列绘制为单独的一行。假设你的单元格数组中有列向量,并且它们的长度都相同,你可以这样做:
x = [MAT_ArrayT{:}];
y = [MAT_ArrayY{:}];
plot(x,y)
更好的方法是将这些矢量存储在数字矩阵中,这样就不需要制作额外的副本了。