Dans MATLAB, existe-t-il un moyen plus concis de gérer l'indexation conditionnelle discrète par colonne plutôt que d'utiliser une boucle for? Voici mon code:Existe-t-il une manière vectorisée d'opérer sur un nombre différent de valeurs par colonne dans MATLAB?
x=[1 2 3;4 5 6;7 8 9];
w=[5 3 2];
q=zeros(3,1);
for i = 1:3
q(i)=mean(x(x(:,i)>w(i),i));
end
q
Mon but est de prendre la moyenne de la partie supérieure x% d'un ensemble de valeurs pour chaque colonne. Le code ci-dessus fonctionne, mais je me demande simplement s'il existe une façon plus concise de le faire?
Êtes-vous juste essayer de prendre la moyenne d'une colonne après avoir exclu les valeurs aberrantes? Pouvez-vous élaborer sur ce que vous essayez d'accomplir? – linuxuser27
Mon but est de prendre la moyenne du haut x% d'un ensemble de valeurs pour chacune d'une série d'exécutions. J'ai une matrice avec une colonne de données pour chaque exécution et utilisé la fonction prctile pour déterminer ma condition pour chaque exécution. Bien que le code ci-dessus fonctionne, il semble qu'il puisse y avoir une manière plus concise d'accomplir cette tâche. – user338714