Matlab 打印存储为三维矩阵的多个二维图形

Matlab 打印存储为三维矩阵的多个二维图形,matlab,matrix,multidimensional-array,plot,matrix-indexing,Matlab,Matrix,Multidimensional Array,Plot,Matrix Indexing,我需要将相当数量(约15000)的绘图合并到一个数字上。 以迭代的方式进行会花费很长时间,所以我将所有数据存储在一个3D矩阵中,希望能一次绘制出所有数据 我的矩阵结构如下: 因此,如果我想显示矩阵M的第一个绘图,我键入: plot(M(:,1,1),M(:,2,1)) 当然,为了一次绘制所有数据,我尝试: plot(M(:,1,:),M(:,2,:)) 这给了我以下错误: Error using plot Data cannot have more than 2 dimensions.

我需要将相当数量(约15000)的绘图合并到一个数字上。 以迭代的方式进行会花费很长时间,所以我将所有数据存储在一个3D矩阵中,希望能一次绘制出所有数据

我的矩阵结构如下:

因此,如果我想显示矩阵
M
的第一个绘图,我键入:

plot(M(:,1,1),M(:,2,1))
当然,为了一次绘制所有数据,我尝试:

plot(M(:,1,:),M(:,2,:))
这给了我以下错误:

Error using plot
Data cannot have more than 2 dimensions.
有没有关于如何快速绘制此类数据的想法

下面是一个代码示例:

M = rand(5,2,3);

for i = 1:1:size(M,3)
    M(:,1,i) = linspace(1,size(M,1),size(M,1));
%     plot(M(:,1,i),M(:,2,i))  % Plot iteratively --> Works but slow
%     hold on 
end

plot(M(:,1,:),M(:,2,:)) % --> Gives the error 'Data cannot have more than 2 dimensions.'

最简单的解决方案是对数据进行处理,因为它本质上是二维的,但仅仅是置换的:

plot( squeeze(M(:,1,:)), squeeze(M(:,2,:)) )
M(:,1,:)
这样的矩阵的大小为5x1x3,
squence
所做的是删除大小为1的中间维度,从而生成5x3矩阵。这也可以通过使用来实现