2012-10-30 150 views
0

我有一个计算,我想执行元素。MATLAB:矢量化索引与矢量*矩阵混淆

foreach i from i=1 to i=N 
    RES_i = det(A - V_i * I) // notice V_i and RES_i are SCALARS 

其中例如A是3x3,I是3x3,V和RES是1xN。

所以基本上我做的是

idx=1:81 
res(idx) = det(A - V(idx)*I); 

但是,这得到interperted如采取整体的V再乘以一

这似乎是一个简单的例子,但我想不出如何进行矢量化...

谢谢。

回答

0

首先,这不是Matlab代码...

二:我想你混淆了“量化”和一个隐含的循环。向量化意味着使用向量/矩阵/张量记号和操作一次对整个数组应用操作。然而,你想要的是一个隐含的for-each类型的循环,并且Matlab总是抱怨它是完全意义上的。

有没有其他办法,而不是写出来明确:

res = zeros(81,1); 
for ii = 1:numel(res) 
    res(ii) = det(A-V(ii)*I); 
end 
0

通过使用执行元件的件工作。与选择的运营商一起。例如:

Element-by-element multiplication: .* 
Element-by-element division: ./ 

等等......那是什么意思?