J'ai une matrice 8x1 de cellules dans mon espace de travail Matlab appelée textdata. Elle contient des symboles dans chaque ligne. Comment puis-je utiliser le bouton poussoir et les Edit1_Callbacks
pour programmer une opération de récupération de ce point de données de base (quel est le code et où dois-je le taper? Pas de trucs compliqués, je veux juste savoir comment importer le textdata dans l'interface graphique et, d'un simple clic sur un bouton, récupérer le premier symbole dans la zone de texte d'édition (un point de données de la première ligne de textdata)?
Réponse
Trop de publicités?Vous pouvez utiliser la fonction Matlab evalin
pour récupérer une variable de l'espace de travail de votre interface graphique.
L'exemple d'interface graphique suivant montre comment faire, vous pouvez probablement développer à partir de ce point de départ :
% Interface graphique
function so_wsgui
figure('units','normalized',
'position',[0.15 0.15 0.7 0.7],
'color',[1 1 1]*0.5,
'numbertitle','off',
'menubar','none',
'toolbar','none',
'tag','figure');
data=guihandles(gcf);
uicontrol('parent',data.figure,
'style','pushbutton',
'string','Importer',
'units','normalized',
'position',[0.1 0.85 0.8 0.05],
'callback',@import_callback);
uicontrol('parent',data.figure,
'style','edit',
'horizontalalignment','center',
'backgroundcolor',[1 1 1],
'units','normalized',
'position',[0.1 0.5 0.8 0.05],
'tag','text');
data=guihandles(gcf);
guidata(gcf,data);
end
% Retours
function import_callback(obj,event) %#ok
data=guidata(gcbf);
try
wsvar=evalin('base','textdata');
set(data.text,'string',wsvar{1});
catch exception
set(data.text,'string',['Erreur : ' exception.identifier]);
end
end
Cependant, vous devez faire attention avec cela car rien ne vous garantit que la variable existe ou qu'il s'agit d'un tableau de cellules, vous devez donc être prudent. Ce n'est pas vraiment la manière habituelle de transmettre des données à une interface graphique.