在MATLAB/Octave中绘制3D矩阵切片的值

在MATLAB/Octave中绘制3D矩阵切片的值,matlab,matrix,3d,Matlab,Matrix,3d,如果我有一个3D矩阵,X即4x10x50 该矩阵由第一维中的位置和速度、第二维中的不同粒子(或船只或其他)指数以及第三维中粒子运动的不同时间步长组成。也许没那么重要,但也许它澄清了我的问题 假设我想在第三维度的前两个维度中绘制特定索引的X >> plot(X(1,1,:)) Error using plot Data may not have more than 2 dimensions 即使提供的值是一维的,我也不能在这里使用绘图,因为它们是单独给出的,如下所示: >>

如果我有一个3D矩阵,
X
4x10x50

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

假设我想在第三维度的前两个维度中绘制特定索引的
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,:)
的结果转换为向量?

使用
X(1,1,:)
将索引转换为
X
,返回一个3D矩阵。但是,
plot
要求其输入为向量或2D矩阵。要将
X(1,1,:)
转换为向量,您需要删除单个维度。政府会这样做:

尝试:


你索引它的方式实际上产生了一个二维向量。所以
大小(A(:,:,1)
实际上是
4x10

要绘制它,请使用Matlab的挤压操作符

plot(squeeze(X(:,:,1))

class(X)
给出了答案
double
谢谢!这正是我想要的!
plot(squeeze(X(:,:,1))