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 =)
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.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :