绘制不带环的不同长度的单元阵列

时间:2018-01-19 13:46:07

标签: arrays matlab for-loop plot cell

我从代码中得到以下输出:

MAT_ArrayT - 6x1 cell
MAT_ArrayY - 6x1 cell

在每个内部看起来如下:

10000x1 double
9000x1 double
8000x1 double
7000x1 double
6000x1 double
5000x1 double

我想有一个情节,我得到6条相互适合的线。

我想得到的结果如下:

for i = 1:6
    plot(MAT_ArrayT{i,:},MAT_ArrayY{i,:})
end

但没有for循环,因为我需要绘制1k +行所需的时间更长。

谢谢。

2 个答案:

答案 0 :(得分:0)

快速和肮脏的解决方案与我的answer to your previous question一样,用NaN填充较短的向量。 NaN点未被绘制。

答案 1 :(得分:-1)

如果你将Matlab的绘图函数放在一个数组中,它会将数组的每一列绘制为它自己的行。例如:

A = 1:2:20;
B = 1:10;

C = [A', B']
plot(C)

可生产

C =

 1     1
 3     2
 5     3
 7     4
 9     5
11     6
13     7
15     8
17     9
19    10

Plot of C

正如我们所看到的,plot()已将C的第一列绘制为蓝线,将C的第二列绘制为橙色线,我们只用一行代码完成。如果你可以设置你的单元格数组,使你想要绘制的每一行都是它自己的列,这应该可以为你加快速度。