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函数计算出来的。 感谢
答案 0 :(得分:2)
for loop创建一个循环变量n
,第一个循环从1开始,每个连续循环递增1,直到达到num_letters
。这意味着循环将执行num_letters
次。
变量comp
首先初始化为empty matrix []
。在循环内,使用函数cell array在矩阵imgn
和另一个矩阵templates{1,n}
(从CORR2索引)之间计算2-D相关系数。相关系数sem
使用horizontal concatenation附加到数组comp
。这最终会导致comp
成为1-by-num_letters
相关系数数组。
变量vd
存储数组索引,其中comp
中的值等于comp
中的最大值。这是使用函数MAX和FIND以及comparison operator ==
完成的。
将来,我建议您先使用online documentation尝试帮助您更好地理解MATLAB的工作原理。这是非常良好的文档。我从中学到了大部分知识。 ;)