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)
我尝试对数组 '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)