Utilisation de noms "incrémentés" - Matlab

Fermé
will0208 - 26 nov. 2010 à 22:38
 tug83 - 30 nov. 2010 à 11:08
Bonjour,


voici mon problème sur Matlab :
j'ai appris à incrémenter (sur ce forum, merci "Sacabouffe") des noms de matrices, et je voudrais réutiliser ces noms incrémentés dans un autre boucle "for". Ci-dessous l'algorithme :

clear
clc

nombre=3;

for i=1:nombre
eval(['souplesse_' num2str(i) ' = zeros(3)'])
end



Ci-dessous le résultat obtenu :


souplesse_1 =

0 0 0
0 0 0
0 0 0


souplesse_2 =

0 0 0
0 0 0
0 0 0


souplesse_3 =

0 0 0
0 0 0
0 0 0



Jusqu'ici j'ai ce que je veux

maintenant l'idée serait de programmer ceci :

for i = 1:nombre
souplesse_(i) = [xx xx xx ; xx xx xx ; xx xx xx]
end


Or la "prise en compte" du i me pose problème pour cette boucle for,
quelqu'un a-t-il une piste de synthaxe svp?
merci d'avance
A voir également:

1 réponse

Tu ne peux pas affecter une matrice à une variable de cette façon. tu dois passer par les cellules.
Sinon tu auras le message:
??? In an assignment A(I) = B, the number of elements in B and
I must be the same.

Une idée :
for i=1:nombre
souplesse_{i} = zeros(3)
end

ou en une ligne
souplesse_ = {zeros(3);zeros(3);zeros(3)}


Ensuite si tu tapes
>> cell2mat(souplesse_(1))
tu retrouveras bien ta première matrice de zéros

Aurélien
https://blog.developpez.com/matlab4geek/
0