Bonjour,
Je travaille actuellement sur un programme de calcul mécanique sous scilab et je suis coincé sur une boucle for.
Étant novice sous scilab j'aurais besoin d'un peu d'aide.
Voici mon programme : j'importe des matrices de mesures jusque là tous se passe bien mais quand je passe au calcul de A sa coince je n'ai que le premier terme qui se calcul et tous les autres termes de la matrices reste à zéro je pense donc avoir un problème dans mes indices i et j mais je n'arrive pas à trouver la solution.
J'espère que vous pourrez m'aider
Par avance merci
//Matrice traction unitaire
Tru=fscanfMat('traction unitaire.txt');
//Matrice cisaillement sur Y unitaire
Cy=fscanfMat('cisaillement y unitaire.txt');
//Matrice cisaillement sur Z unitaire
Cz=fscanfMat('cisaillement z unitaire.txt');
//Matrice torsion unitaire
Tou=fscanfMat('torsion unitaire.txt');
//Matrice Flexion sur Y unitaire
Fyu=fscanfMat('flexion y unitaire.txt');
//Matrice Flexion sur Z unitaire
Fzu=fscanfMat('flexion z unitaire.txt');
//lecture du fichier de mesure
M=fscanfMat('arn11.txt');
//données
a=size(Tru);
b=size(M);
A=zeros(a(1,1),3);
t=1;
while t<=b(1,1)
for i=1:a(1,1)
for j=1:3
A(i,j)=(M(t,1)*Tru(i,j))+(M(t, 2)*Cy(i,j))+(M(t,3)*Cz(i,j))+( M(t,4)*Tou(i,j))+(M(t,5)*Fyu(i ,j))+(M(t,6)*Fzu(i,j))
end
end
t=t+1
end
édit Océane : forum modifié
Bonsoir,
je ne sais pas si je serai d'une grande aide mais vu qu'il n'y a pas de réponse, je m'y colle. Si je comprends bien pour les données tu cherches le nombre de lignes des matrices Tru et M. Tu peux directement écrire size(Tru,"r"). Pour la suite, je ne comprends pas vraiment ce que tu veux faire. Pour la boucle en j, pourquoi pas. Idem pour i. Par contre, que viens faire la boucle while. Ainsi, tu calcules A pour t=1, tu écrases les valeurs de A en les remplaçant par le calcul en t=2 et ce jusqu'à b+1. Si tu ne veux que les valeurs en b+1, pourquoi ne pas écrire directement M(b+1,1) etc... dans les boucles ? Merci de m'éclairer. En tout ca c'est normal que tu ais un problème : à la fin de la boucle while, tu calcules M(b+1,1) etc ... alors que M contient b lignes.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :