Inscription / Connexion Nouveau Sujet
Niveau logiciels
Partager :

Probème Matlab

Posté par
ravinator
25-01-14 à 19:57

Bonsoir à tous !

J'ai un problème tout bête en Matlab, et j'aimerais savoir si vous pouviez m'aider. En gros je débute avec ce logiciel, bien que j'ai déjà fait de l'algo avant. Mon problème, en version simplifiée, est le suivant :

J'ai une matrice remplie de 0, et je souhaite, si certaines conditions sont vérifiées, faire l'opération :
M(i,j) = M(i,j) + 1/(fin*(h-b+1)) où fin, h et b sont des variables que je calcule au sein de mon programme. Dans mon problème, cela revient à ajouter 1/6000.

Lorsque j'utilise l'invite de commande et que je tape 1/6000, il me renvoie une bonne valeur, mais au sein du programme, si je fais imprimer 1/(fin*(h-b+1)) , il me renvoie 0
Du coup, je me retrouve avec une matrice nulle, ce qui ne me satisfait absolument pas, vous vous en doutez.

Pour l'instant, je pallie à ce problème en multipliant par 10000 au sein de ma boucle, puis en renvoyant à la fin 1/10000 * M, et là miraculeusement ça marche.

Je sais que Matlab est un logiciel de calcul numérique, ce qui est en soit différent d'autres outils de programmation. Du coup, y a-t-il un moyen de faire cela proprement, de manière plus efficace (les boucles for mettent un temps infini à se dérouler, c'est ennuyeux)...

Bref, merci de votre aide à venir =)

Posté par
Surb
re : Probème Matlab 27-01-14 à 11:29

Bonjour,

Pour additionner une constante a toutes les composantes d'une matrice tu peux faire comme suit:
X = zeros(5)
Y = zeros(5)
a = 32
Y = X+a

Pour additionner a à une composante donnée de la matrice, c'est comme tu fais:
X = zeros(5)
Y = zeros(5)
a = 32
Y(2,3) = X(2,3) + a

Si tu as un problème dans le calcul de fin , h ou b c'est une autre chose. Dans ce cas il faut que tu nous expliques comment tu les calcules.

Répondre à ce sujet

Seuls les membres peuvent poster sur le forum !

Vous devez être connecté pour poster :

Connexion / Inscription Poster un nouveau sujet
Une question ?
Besoin d'aide ?
(Gratuit)
Un modérateur est susceptible de supprimer toute contribution qui ne serait pas en relation avec le thème de discussion abordé, la ligne éditoriale du site, ou qui serait contraire à la loi.


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 !