虽然 MATLAB 中的常规二维矩阵是矩形的,但元胞数组在每个元胞中可以有不同长度的数组。从某种意义上说,它们只是将不同的一维数组打包在一起的一种便捷方式。
在更基本的级别上,您可以调用具有多个数组的绘图,例如
plot(x1,y1,'+',x2,y2,'*',...)
其中x1
, 和y2
大小匹配,但x2
可以不同于x1
。您还可以构建一个元胞数组,并使用一个简单的命令绘制它:
C = cell(2,3);
C{1,1} = x1; C{2,1} = y2;
C{1,2} = x2; etc
plot(C{:})
在numpy
,pyplot.plot()
具有相同的语法。 x1
etc 可以是 Python 列表中的项目。或者数组可以是 numpy 对象数组中的元素:
array([[[1 2 3 4 5], [2 3 4], [0 2 4 6]],
[[4 5 6 7 8], [-2 -3 -4], [-3 -1 1 3]]], dtype=object)
for i in range(3):
pyplot.plot(*C[:,i])
pyplot.hold('on')
您还可以通过使用None
分隔符连接所有数据来绘制多条线。当有大量行时,这似乎有帮助(速度方面)。将数据包装在 annp.array
中是可选的(尽管pyplot
在内部这样做)。
pyplot.plot(*np.array([[1,2,3,4,5,None,1,2.5,4,5], [1,3,2,5,1,None,2,4,5,6]]))
pyplot.plot([1,2,3,4,5,None,1,2.5,4,5], [1,3,2,5,1,None,2,4,5,6])