1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| function test
% Initialisation d'une matrice vide
M=[];
% Stockage de cette matrice pour la réutiliser ultérieurement
figure('userdata',M);
% Ajout des boutons et du texte
uicontrol('units','normalized',...
'position',[.1 .1 .1 .05],...
'string','-',...
'callback',@incrmat)
uicontrol('units','normalized',...
'position',[.1 .2 .1 .05],...
'string','+', ...
'callback',@incrmat)
uicontrol('units','normalized',...
'position',[.25 .15 .2 .05],...
'style','text',...
'string','M is an empty matrix');
% Fonction exécutées losque l'on clique sur un des deux boutons
function incrmat(obj,event)
% Ici "obj" identifie le bouton sélectionné
% Récupération de la matrice M
M=get(gcf,'userdata');
% Sur quel bouton a-t-on appuyée ?
if strcmp(get(obj,'string'),'+') % Sur +
M=[M ; rand(1,2)]; % Ajout de lignes
else % Sur -
if ~isempty(M) % Pas de suppression si la matrice est vide
M(end,:)=[]; % Suppression de lignes
end
end
M % Juste pour controle
set(gcf,'userdata',M) % Stockage de la matrice M modifiée
% Mise à jour du texte
if isempty(M)
str='M is an empty matrix';
else str=sprintf('M is an %dx%d',size(M));
end
set(findobj('style','text'),'string',str) |