网格网格上的min运算符

时间:2016-01-21 13:37:47

标签: matlab matlab-figure

我尝试使用the slice command中描述的Exploring Volumes with Slice Planes之类的内容,但我想要显示的函数是以下标量字段:

F(X,Y,Z)=分钟(1.x中,2.Y,3.Z)

我做:

[x,y,z]=meshgrid(0:10,0:10,0:10);

我不确定它是否正确,但我尝试过:

v=min([x.*1,y.*2,z.*3]);

问题是(我不知道为什么)这会产生一个1x33x11阵列,在运行切片时逻辑上会导致错误(因为v需要与x,y和z相同,即11x11x11) 。

如何根据切片生成v?

1 个答案:

答案 0 :(得分:3)

问题在于代码的这一部分:

[x.*1,y.*2,z.*3]

在这里,您只需附加三个矩阵,得到一个[11 33 11]矩阵,而不是将它们叠加到[11 11 11 3]矩阵中。为此,请使用cat将三个3D矩阵堆叠在第四维中。

v=min(cat(4,x.*1,y.*2,z.*3),[],4);