Я хочу, чтобы вставить массив, используя графический интерфейс, но я не понимаю, почему я получаю эти ошибки:вставки массива с помощью графического интерфейса в среде MATLAB
Error using waitfor
Undefined function or variable 'A'.
Error using waitfor
Error while evaluating uicontrol Callback
КОД:
function read()
clear all
clc
n=2;
b=50;
a=300;
B = nan(n);
S.fh = figure('units','pixels',...
'position',[500 500 500 500],...
'menubar','none',...
'numbertitle','off',...
'name','Matrix',...
'resize','off');
for i=1:n
for j=1:n
A(i,j) = uicontrol('style','edit','units','pixels',...
'position',[b a 50 50],'fontsize',20,'string','',...
'Callback', 'B(A == gco) = str2double(get(gco, ''string''));');
b = b+60;
end
b = 50;
a = a-60;
end
S.bb = uicontrol('style','push',...
'units','pixels',...
'position',[300 10 75 50],...
'fontsize',14,...
'string','Done',...
'callback','close');
waitfor(S.fh)
B
PS..если я удаляю первую строку (функция read()) .. работает, но я хочу использовать с функцией, потому что это часть программы с большим количеством функций, и я хочу чтобы вернуть массив B в другую функцию ... спасибо – alinush2693
использовать анонимную функцию для обратного вызова вместо строки. – Shai
Ну, вы не определили 'A' перед его использованием. Возможно, попробуйте добавить 'A = []' перед первым циклом 'for'. – Justin