Appel variable dynamique sous Matlab
Résolu/Fermé
A voir également:
- Appel variable dynamique sous Matlab
- Tableau croisé dynamique - Guide
- Appel inconnu - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Liste déroulante dynamique excel - Guide
- Signal d'appel - Forum iPhone
6 réponses
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
2 mars 2009 à 16:30
2 mars 2009 à 16:30
Salut
À la manière de Sacabouffe ? :-D
Je pense pas que ce soit ma manière ; à mon avis c'est plutôt classique. ;-)
Pour ton truc, tu procèdes tout pareil :
Ciao
À la manière de Sacabouffe ? :-D
Je pense pas que ce soit ma manière ; à mon avis c'est plutôt classique. ;-)
Pour ton truc, tu procèdes tout pareil :
for j=1:q if eval(['A' num2str(j)]) > seuil blablabla end endC'est tout !
Ciao
Je viens d'essayer, cela fonctionne comme tu le dis. Merci bien !
En fait, je me rends compte que mes variable An seront des tableaux.
A partir de là, j'ai trouvé comment récupérer une valeur dans ces tableaux.
Voici mon exemple :
n=1;
eval(['A' num2str(n) ' = [3,5,8]'])
x=eval(['A' num2str(n)])
x(2)
Cependant, y a t'il possibilité de raccourcir le code en effectuant les opérations des deux dernières lignes en une seule du type eval(['A' num2str(n)]) (2) ?
Je viens d'essayer mais j'obtiens un message d'erreur.
En tous cas, merci beaucoup pour l'aide apportée.
Bonne après midi
En fait, je me rends compte que mes variable An seront des tableaux.
A partir de là, j'ai trouvé comment récupérer une valeur dans ces tableaux.
Voici mon exemple :
n=1;
eval(['A' num2str(n) ' = [3,5,8]'])
x=eval(['A' num2str(n)])
x(2)
Cependant, y a t'il possibilité de raccourcir le code en effectuant les opérations des deux dernières lignes en une seule du type eval(['A' num2str(n)]) (2) ?
Je viens d'essayer mais j'obtiens un message d'erreur.
En tous cas, merci beaucoup pour l'aide apportée.
Bonne après midi
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
2 mars 2009 à 17:18
2 mars 2009 à 17:18
Pas de quoi ;-)
Pour ton autre question, y a bien ça
C'est que t'as pas besoin des An ? Juste des An(2) ?
Sinon, donne l'expression des An pour voir, ça sera peut-être plus parlant que l'exemple court que t'as donné. Parce que là, en faisant directement x=5;, ça va encore plus vite. :-D
Mais bon, j'imagine que c'est bien différent pour ton code et que tu peux pas le faire...
Bon après-midi à toi aussi
Pour ton autre question, y a bien ça
eval(['A' num2str(n) ' = [3,5,8] ; x = A' num2str(n) '(2);']);Mais ça a pas grand intérêt, c'est la même chose que ce que t'as écrit en quelque sorte.
C'est que t'as pas besoin des An ? Juste des An(2) ?
Sinon, donne l'expression des An pour voir, ça sera peut-être plus parlant que l'exemple court que t'as donné. Parce que là, en faisant directement x=5;, ça va encore plus vite. :-D
Mais bon, j'imagine que c'est bien différent pour ton code et que tu peux pas le faire...
Bon après-midi à toi aussi
En fait, dans ma boucle for de 1 à n, je vérifie une condition sur les An(2) ... et je ne sais comment écrire ça :
if (tirage<proba) && (An(2)>seuil)
blabla
end
D'où ma question concernant la possibilité de réduire les 2 dernières lignes de mon bout de code du précédent message en une seule ... et c'est là que je vois pas trop comment faire !
Si quelqu'un a la solution ou des tuyaux ,je suis preneur !
if (tirage<proba) && (An(2)>seuil)
blabla
end
D'où ma question concernant la possibilité de réduire les 2 dernières lignes de mon bout de code du précédent message en une seule ... et c'est là que je vois pas trop comment faire !
Si quelqu'un a la solution ou des tuyaux ,je suis preneur !
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
2 mars 2009 à 17:33
2 mars 2009 à 17:33
Ah OK ! C'est tout !
Bon bon... J'avais pas du tout compris ce que tu voulais faire du coup.
Ben y a juste à rajouter la chaîne de caractères qu'il faut dans le eval alors.
Bon après-midi à toi aussi !
Bon bon... J'avais pas du tout compris ce que tu voulais faire du coup.
Ben y a juste à rajouter la chaîne de caractères qu'il faut dans le eval alors.
if (tirage < proba) && (eval(['A' num2str(n) '(2)']) > seuil) blabla endC'est bien ça ?
Bon après-midi à toi aussi !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sacabouffe
Messages postés
9427
Date d'inscription
dimanche 19 août 2007
Statut
Membre
Dernière intervention
29 mai 2009
1 835
2 mars 2009 à 17:52
2 mars 2009 à 17:52
Beh y a pas de quoi ! :-D
Et pis content que t'aies apprécié ta première sur un forum. ;-)
À bientôt peut-être !
Et pis content que t'aies apprécié ta première sur un forum. ;-)
À bientôt peut-être !
Bonjour,
J'avais le même souci que Joe et ai en partie trouver ici la réponse dont j'avais besoin.
Cependant, mon problème n'est toujours pas complètement résolu, j'espère donc que vous pourrez continuer à m'aider !
Alors voilà :
J'ai crée, grâce à la fonction eval(), une série de structures (21) dont les noms sont MatJ1, MatJ2... MatJ21. Chaque structure contient une matrice que l'on atteint par MatJX.d
Mon problème est que je veux maintenant pourvoir réatteindre ces matrices et calculer les coefficients de corrélation correspondants (CoefJ1... CoefJ21).
J'ai essayé de réutiliser la fonction eval et mon code ressemble à quelque chose comme ça :
for i=1:nbrJour
Jour=GrJour.g.i(i,:);
eval ('CoefJ' Jour '= corrcoef (MatJ' Jour '.d*MatJ' Jour '.d'' )');
end
Sachant que la variable Jour est de type string
En tous cas, tel quel, ça ne fonctionne pas... Alors si quelqu'un avait une idée ou pouvait m'expliquer ce qui ne va pas... Ce serait magnifique !
J'avais le même souci que Joe et ai en partie trouver ici la réponse dont j'avais besoin.
Cependant, mon problème n'est toujours pas complètement résolu, j'espère donc que vous pourrez continuer à m'aider !
Alors voilà :
J'ai crée, grâce à la fonction eval(), une série de structures (21) dont les noms sont MatJ1, MatJ2... MatJ21. Chaque structure contient une matrice que l'on atteint par MatJX.d
Mon problème est que je veux maintenant pourvoir réatteindre ces matrices et calculer les coefficients de corrélation correspondants (CoefJ1... CoefJ21).
J'ai essayé de réutiliser la fonction eval et mon code ressemble à quelque chose comme ça :
for i=1:nbrJour
Jour=GrJour.g.i(i,:);
eval ('CoefJ' Jour '= corrcoef (MatJ' Jour '.d*MatJ' Jour '.d'' )');
end
Sachant que la variable Jour est de type string
En tous cas, tel quel, ça ne fonctionne pas... Alors si quelqu'un avait une idée ou pouvait m'expliquer ce qui ne va pas... Ce serait magnifique !