【发布时间】:2018-03-16 11:06:17
【问题描述】:
我有两个数组,它们都包含几个 3x1 向量。数组是不同的维度。我正在尝试创建一个数组,该数组在不使用(for)循环的情况下为每个组合保存点积,但我似乎不知道该怎么做。希望有任何想法提示或技巧
a = 5;
b = 6;
c = 10;
% 2 arrays
% uno is 3xAxB
% dos is 3xC
uno = rand(3, a, b);
dos = rand(3, c);
% Array to hold all the dot products
tres = zeros(a, b, c)
for m = 1:a
for n = 1:b
for p = 1:c
u = uno(:,m, n);
d = dos(:,p);
tres(m, n, p) = u'*d
end
end
end
% WHY CAN I NOT DO THIS???
% How do I get all the dot products quickly and via vectorization?
% x = 1:a
% y = 1:b
% z = 1:c
%
% tres(x, y, z) = uno(:,x, y)'*dos(:,z)
【问题讨论】:
标签: arrays matlab multidimensional-array octave vectorization