Matlab: remplir matrice vide [Résolu]

noussaa19 18 Messages postés jeudi 28 décembre 2000Date d'inscription 12 avril 2010 Dernière intervention - 9 avril 2010 à 01:09 - Dernière réponse : Pistol_Pete 1055 Messages postés samedi 2 octobre 2004Date d'inscription 9 juillet 2013 Dernière intervention
- 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 

1 réponse

Répondre au sujet
Pistol_Pete 1055 Messages postés samedi 2 octobre 2004Date d'inscription 9 juillet 2013 Dernière intervention - 9 avril 2010 à 08:55
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
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.