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
| % Effectue le(s) calcul(s) inter-matrices
function pushbutton3_Callback(hObject, eventdata, handles)
Concate = '';
NeedParenthese = 0;
% --> Calcul(s)
%il y a 8 champs de Text dont 4 correspondent aux choix d'opérateurs et 4 aux matrices, si l'utilisateur n'a rien rempli au préalable ces champs sont vides
for l = 1:1:4
%récupère le contenu des text dont est servi pour stocker les matrices recomposés et opérateurs
ObjSelect = findobj(gcf,'Tag',['MatChmps', num2str(l)]);
Matri = get(ObjSelect, 'String'); %matrice recomposés via des Edit sous la forme [2,5;3,1]
ObjSelect = findobj(gcf,'Tag',['op', num2str(l)]);
Operat = get(ObjSelect, 'String'); %opérateur choisi via Popmenu ex : det() ou *
%det et eig sont les opérateurs placés avant les noms des matrices d'où cas spécial pour la concaténation forme : det([Matrice])
if ((strcmp(Operat, 'eig') == 1) || (strcmp(Operat, 'det') == 1))
Concate = strcat(Operat, '(', Concate, Matri);
NeedParenthese = 1;
else
%dans tout les autres cas, forme : [Matrice] opérateur [Matrice]
Concate = strcat(Concate, Operat, Matri);
end
end
if NeedParenthese == 1
Concate = strcat(Concate, ')');
end
%Laisse à Matlab le soin de l'opération "^^
ObjSelect = findobj(gcf,'Tag','ResultatStr');
set(ObjSelect, 'String', Concate); %résultat concaténer ex: Concate = 'det([1]+[2])'
Result = eval(Concate); % <= là génération du message d'erreur
set(ObjSelect, 'String', Result); |
Partager