2016-04-30 1 views
0

Mon code est:Erreur: Index dépasse les dimensions de la matrice en utilisant bsxfun dans Matlab

A =[1 5 8; 3 4 7;9 10 11] 
B = bsxfun(@rdivide,A,sum(A)); 

En cours d'exécution, je reçois une erreur: index exceeds matrix dimension

S'il vous plaît aider.

+1

Je ne peux pas reproduire votre problème. Le code s'exécute sans erreur. – mikkola

+0

Également ne peut pas reproduire. Ce code fonctionne comme prévu (au moins pour moi). – rayryeng

+1

Effacer la variable 'sum' de votre espace de travail. –

Répondre

0

Vous avez (très probablement) défini une variable appelée sum dans votre espace de travail. clear, le renommer, et tout ira bien.

A =[1 5 8; 3 4 7;9 10 11]; 
B = bsxfun(@rdivide,A,sum(A)) 
B = 

    0.076923 0.263158 0.307692 
    0.230769 0.210526 0.269231 
    0.692308 0.526316 0.423077 


sum = 5; %% Oops! 

B = bsxfun(@rdivide,A,sum(A)) 
Error: Index exceeds matrix dimensions 
+0

et c'est pourquoi il est un peu idiot d'utiliser '()' pour les appels de fonctions et les tableaux ... oh matlab –