2012-10-30 48 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: ./ 

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