Matlab:将一个单元格乘以一个向量

时间:2011-11-07 12:42:05

标签: arrays matlab cell

我目前这样做:

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背后的想法是利用它的优化向量和矩阵乘法等。所以我虽然我可能做错了。有没有更好的方法来做上述表现?

2 个答案:

答案 0 :(得分:4)

我认为您可以使用

替换for循环
result = w'*cell2mat(x1);

答案 1 :(得分:0)

或者你可以使用

result = cellfun(@(x) w'*x,x1);

虽然我认为其他答案会更快。