Корреляционная функция Matlab - PullRequest
0 голосов
/ 07 февраля 2011
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.спасибо

1 Ответ

2 голосов
/ 07 февраля 2011

for loop создает переменную цикла n, которая начинается с 1 для первого цикла и увеличивается на 1 для каждого последующего цикла, пока не достигнет num_letters.Это означает, что цикл будет выполняться num_letters раз.

Переменная comp сначала инициализируется в пустую матрицу [].Внутри цикла вычисляется двумерный коэффициент корреляции между матрицей imgn и другой матрицей templates{1,n} (индексируемой из массива ячеек ) с использованием функции CORR2 .Коэффициент корреляции sem добавляется к массиву comp с использованием горизонтальной конкатенации .В конечном итоге это приведет к тому, что comp будет массивом коэффициентов корреляции размером 1 на num_letters.

Переменная vd хранит индексы массива, в которых значения в comp равны максимальному найденномув comp.Это делается с помощью функций MAX и FIND и оператора сравнения ==.

. В будущем я призываю васСначала воспользуйтесь онлайн-документацией , чтобы попытаться помочь вам лучше понять, как работает MATLAB.Это очень хорошая документация.Я узнал большую часть того, что я знаю из этого.;)

...