Indice les indices doivent être soit réel des entiers positifs ou partitions logiques contenues erreur avec une moyenne de fonction dans matlab
J'ai un géant de données de tableau où chaque ligne je veux extraire des colonnes spécifiques, puis en moyenne les chiffres que j'ai extrait. C'est mon code:
for i=1:1000
temp=data(i,:);
index_data=temp([1,10,11,12,19]); %columns I want to extract
data_final(i,1)=mean(index_data(~isnan(index_data)));
end
J'obtiens une erreur à la première itération. Le tableau qui en est extrait est
[NaN NaN NaN NaN 15.64]
Et ce que je reçois quand je tape index_data(~isnan(index_data)) est 15.64, ce que je m'attendrais. Cependant, j'obtiens une erreur de
??? Subscript indices must either be real positive integers or logicals.
Error in ==> mean(index_data(~isnan(index_data)))
De l'appel de ce à partir de la ligne de commande donne la même erreur. Cependant, si j'essaie avec la fonction de covariance (cov) je ne l'obtiens le message d'erreur. Cela semble vraiment bizarre pour moi!
Merci pour votre aide!
Voir aussi cette question le générique de solution à ce problème.
OriginalL'auteur user899638 | 2011-08-17
Vous devez vous connecter pour publier un commentaire.
Je soupçonne que vous avez défini une variable
mean
avec le même nom que la fonction intégrée. Vous pouvez vérifier à l'aide de:Pour résoudre le problème, supprimez la variable à partir de la mémoire:
clear mean
, puis de corriger toutes les références de cette variable...OriginalL'auteur Amro
J'ai eu un problème similaire. L'erreur dans mon cas était due à l'utilisation de dire qu'un nom de variable, qui se trouve également être un nom de fonction.
Car c'était un moyen, MATLAB considéré comme le mot-clé dire comme un nom de variable, mais pas la fonction.
J'espère que mon commentaire à l'aide
OriginalL'auteur Lavya 'Orion'