Bonjour à tous,
Je recherche de l'aide pour éviter d'utiliser la fonction eval qui ne me permet pas de créer de variable utilisable dans la suite de mon programme:
Le but de cette fonction est de me renvoyer juste la dernière matrice B0n-2 qui est calculée à partir du produit matriciel effectué dans la seconde boucle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 function [H] = function1(A) n=length(A.t); for i=1:n-2 eval(['B' num2str(i-1) num2str(i) ' = function2(A.a(i),A.b(i),A.c(i+1),A.d(i+1))']); end B00=eye(4); for i=1:n-2 eval(['B' num2str(0) num2str(i) '=' 'B' num2str(0) num2str(i-1) '*B' num2str(i-1) num2str(i)]); end eval(['H=' 'B' num2str(0) num2str(n-2)]);
J'aimerais donc pouvoir récupérer les matrices intermédiaires qui sont calculées dans les 2 boucles.
Le problème que je rencontre est que les noms de mes matrices dans la première boucle ne suivent pas B01,B02,B03 etc mais B01,B12,B23 etc jusqu'à Bn-1n-2 et celles dans la deuxieme boucle suivent par contre B01,B02,B03 etc jusqu'à B0n-2 et j'aimerais donc pouvoir récupérer ces matrices avec leur nom respectif afin de pouvoir les utiliser dans mon programme principal.
A tite d'exemple pour n=8
Je calcule cette fonction va me renvoyer B06 et pour la calculer elle va calculer B01 B12 B23 B34 B45 B56 puis B01 B02 B03 B04 B05 B06 et j'aimerais pouvoir récuperer toutes ces matrices et pouvoir directement les utiliser dans mon programme principal. (ex je souhaiterais l'inverse de B34 dans mon programme principal je souhaiterais juste écrire inv(B34) )
Je vous remercie pour toute votre aide.
Partager