【发布时间】:2019-07-15 17:36:27
【问题描述】:
我已经概括了 3vector 和它自身之间的外积,以从 3-vector 的集合(NxNx3 矩阵)中获取输入。
目前,我的函数执行我想要的操作(参见下面的示例输出和输入),它看起来像这样。我想通过避免我目前使用的两个 for 循环来使其更快。
function [rr]=OuterVec(r)
N = size(r,1);
rr = zeros(N,N,3,3);
for i=1:N
for j=1:N
rr(i,j,:,:)=kron(reshape(r(i,j,:),[1,3]),permute(r(i,j,:),[3 2 1]));
end
end
end
I/O 示例
c = ones(2,2);
V(1,1,:)=[1 2 3];
u = c.*V;
OuterVec(u)
ans(:,:,1,1) =
1 1 1 1ans(:,:,2,1) =
2 2 2 2ans(:,:,3,1) =
3 3 3 3ans(:,:,1,2) =
2 2 2 2ans(:,:,2,2) =
4 4 4 4ans(:,:,3,2) =
6 6 6 6ans(:,:,1,3) =
3 3 3 3ans(:,:,2,3) =
6 6 6 6ans(:,:,3,3) =
9 9 9 9
【问题讨论】:
标签: matlab matrix vectorization