如果我有一个3D矩阵,X
即4 x 10 x 50
。
矩阵由第一维中的位置和速度,第二维中的不同粒子(或船或任何)指数组成,最后是第三维中粒子运动的不同时间步长。也许不那么重要但也许它澄清了我的问题。
假设我想在第3维度的前两个维度中为特定指数绘制X
的值
>> plot(X(1,1,:))
Error using plot
Data may not have more than 2 dimensions
即使提供的值是一维的,我也不能在这里使用绘图,因为它们是这样单独给出的:
>> 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, :)
的结果转换为矢量?
答案 0 :(得分:2)
使用X
索引到X( 1, 1, : )
会返回一个3D矩阵。但是,plot
要求其输入为矢量或2D矩阵。要将X( 1, 1, : )
转换为矢量,您需要删除单例维度。 builtin function squeeze
执行此操作:
尝试:
X2 = squeeze( X( 1, 1, : ) );
plot( X2 )
答案 1 :(得分:1)
您索引它的方式实际上产生了一个二维向量。所以size(A(:,:,1)
实际上是4x10
。
要绘制它,请使用Matlab的挤压算子
plot(squeeze(X(:,:,1))