2011-02-07 118 views
0
function letter=read_char(imgn, num_letters) 

global templates 

comp=[ ]; 

for n=1:num_letters 

    sem=corr2(imgn, templates{1,n}); 

    comp=[comp sem]; 

end 

vd=find(comp==max(comp)); 

有人能解釋'FOR'循環做什麼以及'vd'是如何計算的? 另外,變量'comp'是什麼,它看起來像什麼,因爲數組也包含它自己,另一個變量'sem'是從corr2函數中計算出來的。 感謝Matlab相關函數

回答

2

for loop的創建從1開始的第一環路和,直到它到達num_letters對於每個連續的環被1遞增循環變量n。這意味着循環將執行num_letters次。

變量comp首先被初始化爲empty matrix[]。在該循環內,使用函數CORR2在矩陣imgn與另一個矩陣templates{1,n}(從cell array索引)之間計算2-D相關係數。使用horizontal concatenation將相關係數sem附加到陣列comp。這將最終導致comp是相關係數的1乘-。

變量vd存儲數組索引,其中comp中的值等於comp中發現的最大值。這是通過使用功能MAXFINDcomparison operator==完成的。

未來,我會敦促您首先使用online documentation來幫助您更好地理解MATLAB的工作原理。這是非常好良好的文檔。我從中學到了大部分知識。 ;)

+0

非常感謝。 – Joka 2011-02-07 18:26:17