Les types numériques d'erreur lors de la multiplication de deux 2 vecteurs dans MATLAB
J'ai ces 2 vecteurs:
alpha =
1 1 1 1 1 1 1 1 1
f_uv =
193 193 194 192 193 193 190 189 191
Et quand je fais ceci:
alphaf_uv = alpha * f_uv'
Je reçois le message d'erreur:
"??? Error using ==> mtimes
Integers can only be combined with integers of the same class, or scalar doubles."
La partie intéressante est que cette erreur n'apparaît pas si je définissent les mêmes vecteurs dans la console et essayer de la multiplication.
alpha
est défini par moi et f_uv
est obtenu à partir des pixels dans une image PNG.
OriginalL'auteur Red33mer | 2008-11-22
Vous devez vous connecter pour publier un commentaire.
En supposant qu'ils sont tous les deux entier matrices pour commencer,
f_uv'
peut-être pas.Essayer:
et laissez-nous savoir si c'est encore d'actualité.
Vous devrez peut-être tourner
alphaf_uv
de retour dans un type entier, par la suite, en fonction de vos besoins.OriginalL'auteur paxdiablo
Le gros indice, ici, c'est: est-ce
Cette lourdement implique que le f_uv de données est de venir en uint8. La commande WHOS va vérifier. Lorsque vous définissez cette à la ligne de commande, les vecteurs seront le Double par défaut. C'est pourquoi vous voyez la différence de comportement entre "à l'identique" des matrices.
whos
de commande de pointe.OriginalL'auteur MatlabDoug
Peut-être f_uv est un objet avec des "console" valeur renvoyée par une .la méthode toString (). Dans ce cas, vous pouvez avoir besoin de boîte de f_uv comme (int).
OriginalL'auteur