Ошибка графического интерфейса Matlab

это часть моего графического интерфейса, который выполняется, когда я нажимаю кнопку

//
//
//
%VERIFICATION 
% --- Executes on button press in pushbutton9.
function pushbutton9_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton9 (see GCBO)
DIR=handles.directory;  
%angle=Angles(DIR);
area=nor_area(DIR);
%area=0.002;
%display(area)
Check=verify(area);
%display(Check);
if(Check==0)
%message = sprintf('nClick the OK button to continue');
msgbox('The signature belongs to the same person!!!');
else
msgbox('The signature is forged!!!');
end

//
// 
//

и это функция проверки

//
//
//
function flag= verify(area)
%area=0.8969;
%take=area;
%display(take)
flag=0;
extract = xlsread('D:\Project\Image_processing\important\best.xlsx', 'CW4:CW17');
c=size(extract);
%display(c)
for k = 1:c
if (extract(k)==area)
      display(extract(k)); 
      flag=1;
    end 
end
%display(flag)
//
//
//

best.xlsx — это файл Excel, из которого я извлекаю значения и сравниваю их со значением, полученным из основной функции графического интерфейса. Проблема в том, что даже если я отправляю значение площади явно, оно не работает. Если я попытаюсь запустить каждую функцию по отдельности, которая является графическим интерфейсом, отдельно и проверю отдельно, она правильно установит флаг, но когда я запущу ее вместе, она не установит флаг должным образом.


person Aps18    schedule 07.12.2011    source источник


Ответы (1)


Еще раз взгляните на следующие строки в функции verify:

c = size(extract);
for k = 1:c

Я полагаю, ты действительно хочешь

c = numel(extract);

потому что size возвращает вектор.

person Nzbuu    schedule 07.12.2011