Inscription / Connexion Nouveau Sujet
Niveau logiciels
Partager :

Scilab probleme Boucle for

Posté par
g6k__
27-07-11 à 06:19

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é

Posté par
dagwa
re : Scilab probleme Boucle for 05-08-11 à 23:16

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 :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !