Lo script contiene un errore:
[*] la variabile
S viene inizialmente utilizzata coma
handler dello
uicontrol (istruzione "
S=uicontrol('Style','edit' ...")
[*] successivamente viene usata per memorizzare la stringa letta dalla EditBox (istruzione
S = get(S,'String');
[*] da questo momento, la variabile "S" non può contiene più l'
handler dello uicontrol e quindi non potrà più essere utilizzata per accedere ad esso
Nello script in calce, vengono proposti 3 esempi di accesso in "
lettura / scrittura" alla EditBox
%
% Creazione di una "figura"
%
figure
%
% Creazione di tre EDIT BOX
%
S(1)=uicontrol('Style','edit',...
'unit','normalized', ...
'Position',[.1 .1 .1 .1],...
'String','kVA_1');
S(2)=uicontrol('Style','edit',...
'unit','normalized', ...
'Position',[.1 .2 .1 .1],...
'String','kVA_2');
S(3)=uicontrol('Style','edit',...
'unit','normalized', ...
'Position',[.1 .3 .1 .1],...
'String','kVA_3');
%
% Esempio 1: accesso alle EDIT BOX per cancellarne il contenuto
% (l'istruzione "pause" serve solo per ... dare il tempo di "vedere cosa
% succede)
%
for i=1:3
set(S(i),'string','');
pause(1)
end
%
% Esempio 2: settaggio di un valore in ognuna delle EDIT BOX
% (l'istruzione "pause" serve solo per ... dare il tempo di "vedere cosa
% succede)
%
for i=1:3
val=rand(1,1);
str=num2str(val);
set(S(i),'String',val)
pause(1)
end
%
% Esempio 3: lettura della stringa da ognuna delle EDIT BOX, conversione
% della string in numero, "manipolazione del numero (il numero viene
% moltiplicato per 2)
%
for i=1:3
str=get(S(i),'string');
val=str2num(str);
val=val*2;
f = warndlg(['Il doppio del valore letto dalla EditBox ' ...
num2str(i) ' è ' num2str(val)], 'Lettura EditBox');
waitfor(f);
end
Hope this helps.