我目前这样做:
x1 = {...}; %a 1xn cell with each element being a column vector
w = [...]; %some column vector
result = zeros(n,1);
% now I want to multiply each vector in x by w
for i = 1:n
result(i) = w'*cell2mat(x1(i));
end
这当然是有效的,但Matlab背后的想法是利用它的优化向量和矩阵乘法等。所以我虽然我可能做错了。有没有更好的方法来做上述表现?
答案 0 :(得分:4)
我认为您可以使用
替换for
循环
result = w'*cell2mat(x1);
答案 1 :(得分:0)
或者你可以使用
result = cellfun(@(x) w'*x,x1);
虽然我认为其他答案会更快。