2011-11-07 87 views
1

我目前做乘法单元:Matlab的:由一个矢量

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的想法是要利用它的优化向量和矩阵乘法等,所以我虽然我”米可能做错了什么。有没有更好的方法来达到上述性能?

回答

4

我认为你可以只需更换您的for循环:

result = w'*cell2mat(x1); 
+0

感谢那就是我一直在寻找。 – s5s

+0

如果是这样,请点击投票箭头下方的勾号接受答案。 –

0

或者您可以使用

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

虽然我认为对方的回答会更快。