Trouvez des valeurs dans une matrice et les mettre dans un vecteur
-
08-10-2019 - |
Question
Il doit être simple, mais étonnamment je ne pouvais pas trouver une réponse à ce problème ici ou par essais et erreurs.
Je veux obtenir des valeurs sur une matrice (selon certaines conditions) et placer les valeurs dans un vecteur. Je dois aussi les indices des valeurs en indice correspondant. Il y a beaucoup de données si les boucles sont éteintes.
Ceci est une réponse correcte (mais itérative):
[I,J] = find(A > 5);
values = zeros(numel(I),1);
for i=1:numel(I)
values(i) = A(I(i),J(i));
end
J'ai essayé values = A(I,J)
mais c'est n par n au lieu de n par 1.
La solution
Vous pouvez traiter implicitement la matrice comme un vecteur ( indexation linéaire ):
I = find(A > 5);
values = A(I);
Notez que vous pouvez le faire plus efficacement avec logique indexation :
values = A(A > 5);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow