3

如果我有一个 3D 矩阵,X那就是 4 x 10 x 50.

矩阵由第一维中的位置和速度、第二维中的不同粒子(或船或其他)索引以及第三维中粒子运动的不同时间步长组成。也许不是那么重要,但也许它澄清了我的问题。

假设我想X在第三维的前两个维度中绘制特定索引的值

>> plot(X(1,1,:))
Error using plot
Data may not have more than 2 dimensions

即使提供的值是一维的,我也不能在这里使用 plot 因为它们是像这样单独给出的:

>> X(1,1,1:5)

ans(:,:,1) =
10

ans(:,:,2) =
11.4426

ans(:,:,3) =
12.5169

ans(:,:,4) =
13.7492

ans(:,:,5) =
14.9430

如何将结果X( 1, 1, :)转换为向量?

4

2 回答 2

3

索引Xwith X( 1, 1, : )返回一个 3D 矩阵。但是,plot要求其输入是向量或二维矩阵。要转换X( 1, 1, : )为矢量,您需要删除单例维度。内置函数squeeze执行此操作:

尝试:

X2 = squeeze( X( 1, 1, : ) );
plot( X2 )
于 2013-01-17T17:18:18.157 回答
1

您索引它的方式实际上会产生一个二维向量。size(A(:,:,1)实际上也是如此4x10

要绘制它,请使用 Matlab 的挤压运算符

plot(squeeze(X(:,:,1))
于 2013-01-17T17:21:22.833 回答