2014-10-02 124 views
0

好男人,我編輯了這個問題。Matlab矢量化嵌套for循環與二維矩陣

results = zeros(96,96); 
for a=1:96 
    for b=1:85 
     results(a,b) = abs(input(a,b) - input(a,(b+11))) 
    end 
end 

輸入也是一個96x96矩陣。

你能幫我做矢量化循環。

+0

不應該有預先分配'results'和迭代器從開始'1'? – Divakar 2014-10-02 03:56:57

+0

除了Divakar的評論之外,爲什麼不爲'b = 1:85'做些什麼並且去掉if語句呢? – David 2014-10-02 03:59:39

+0

另外請避免使用與MATLAB內置函數名稱相同的變量名稱 - 在這種情況下爲'input'。 – Divakar 2014-10-02 04:06:10

回答

1

修改爲匹配編輯的問題,並更改輸入矩陣的名稱以避免與matlab關鍵字衝突。你結束了一個96x85矩陣佔據第85行的零矩陣的初始化你:

results = zeros(96,96); 
results(:,1:85) = abs(inputMatrix(:,1:85) - inputMatrix(:,12:end)) 
+0

你需要填充零或預先分配似乎。 – Divakar 2014-10-02 04:07:58

+0

完成,謝謝。移動目標。 – RishiG 2014-10-02 04:27:16