Matlab: remplir matrice vide [Résolu]

Messages postés
18
Date d'inscription
jeudi 28 décembre 2000
Dernière intervention
12 avril 2010
- - Dernière réponse : Pistol_Pete
Messages postés
1055
Date d'inscription
samedi 2 octobre 2004
Dernière intervention
9 juillet 2013
- 9 avril 2010 à 08:55
Salut;
Je suis en train de développer une application sous Matlab, je veux remplir une matrice qui est déjà vide à partir d'une partie d'une autre matrice.
J'ai esayé de faire le code suivant:

%initialisation
MM=[];
o=1;
p=1;

%parcours de la portion à copier
 for m=h:hi
         for n=s:sj
              
                   MM(o,p)=Im(m,n); %le pixel courant de la nouvelle matrice reçoit son équivalent de l'ancienne matrice
                   o=o+1;
                   p=p+1;
                disp(MM(o,p));

         end
     end


Le problème c'est que le programme m'affiche au début des valeur juste mais il m'affiche après l'erreur suivant:
??? Attempted to access MM(2,2); index out of bounds because numel(MM)=1.

Error in ==> sauvolabouble at 90
                disp(MM(o,p));

merci d'avance.
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
1055
Date d'inscription
samedi 2 octobre 2004
Dernière intervention
9 juillet 2013
3
Merci
Salut
Tu connais la taille de ta matrice MM, alors pourquoi ne pas lui spécifier directement ca lui évitera d'avoir à redimensionner la matrice à chaque itération.
MM=zeros(hi-h,sj-s)
A+

____________________________________________________________________________
Logiciel en traitement de l'image gratuit et open source.

Merci Pistol_Pete 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Pistol_Pete

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.