Matlab - 向量化数组的某些维度?

Matlab - Vectorizing some dimensions of array?

我尝试对数组 'for loop' 进行矢量化,但它对我不起作用。 我的'for loop'是

for k = 1:N
R(n,n,k) = R(n,n,k) - SE3(k,k);
end

并将其向量化

diagSE3 = diag(SE3);
R(n,n,1:N) = R(n,n,1:N) - diagSE3(1:N);

R(n,n,1:N) = R(n,n,1:N) - diagSE3(1:N)

您尝试从维度为 1 x 1 x N 的三维数组中减去向量 (N x 1)。这可以使用 squeeze:

修复
R(n,n,1:N) = squeeze(R(n,n,1:N)) - diagSE3(1:N)