在MATLAB/Octave中绘制3D矩阵切片的值
如果我有一个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 即使提供的值是一维的,我也不能在这里使用绘图,因为它们是单独给出的,如下所示: >>
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))