我怎样才能有效地使用Matlab找到3D阵列第三维的所有方差?

时间:2016-03-01 20:22:45

标签: matlab

如果我有一个大小为nx * ny * nz的矩阵A,我可以通过使用双循环来找到我正在寻找的差异:

varA = zeros(ny,nx);
for jj = 1:ny
  for ii = 1:nx
    varA(jj,ii) = var(A(jj,ii,:));
  end
end

但是,我非常希望避免使用这个循环,因为大型数组可能需要很长时间。有没有一种简单的方法可以在Matlab中有效地进行计算?

1 个答案:

答案 0 :(得分:4)

您希望向dim提供var输入,以指定应用计算的维度。

varA = var(A, 0, 3);

您必须将加权方案(第二个参数)指定为默认值(0)。

  

注意:此维度参数可用于许多简单计算,包括meanstddiff。检查文档中的特定功能。