2010-10-28 16 views
2

Je veux utiliser la fonction reshape() dans Matlab en appelant la fonction auto-définie suivante:Matlab refaçonner fonction: nombre d'éléments ne doit pas changer

imgRgb = reshape(convertYuvToRgb(reshape(imgYuv, height*width, 3)), height, width, 3); 

ici:

width=352 
height=288 

Et imgYuv est un Matrice 4D.

Cependant, le système m'a donné le message d'erreur suivant:

Pour Remodeler le nombre d'éléments ne doit pas changer.

Un expert peut-il me donner quelques conseils?

Merci!

Répondre

8

Par exemple, vous ne pouvez pas remodeler une matrice 2x4 en une matrice 3x3. L'un a 8 éléments, l'autre 9. L'avertissement que matlab a émis vous dit que quelque chose comme ça a été essayé.

Vous pouvez penser que la taille de la matrice est différente de la taille réelle, mais la preuve est dans les nombres. Vérifiez les tailles réelles de ces matrices. Compter les éléments. Le numl de la fonction matlab vous dira combien d'éléments sont dans une matrice, donc vous pouvez comparer directement.

+0

Merci pour l'explication, les copeaux de bois! Maintenant, je peux obtenir la sortie correcte après modification. – view