0
votes

Sélection d'éléments d'un vecteur basé sur une condition sur un autre vecteur

Je veux savoir comment sélectionner ces chiffres qui correspondent (c'est-à-dire la même position) à mes numéros prédéfinis.

Par exemple, j'ai ces vecteurs: P>

output = [1  100
          2  300
          3  400
          4  700]


0 commentaires

4 Réponses :


2
votes

Créer un index logique basé sur A code> et l'appliquer sur A code> et B code> pour obtenir le résultat souhaité:

ind = ~mod(a,1); % true for integer numbers
output = [a(ind); b(ind)].'; % build result


0 commentaires

1
votes

Bien que l'intention n'est pas claire, la création d'indexation à la matrice est la solution

Ma solution est p> xxx pré>

la clé ici crée l'index sur A code> et B code> pour lequel il est un vecteur logique aux valeurs entier dans a code>. Cette fonction checkint code> fait un bon travail entier. P>

Autres approches pour vérifier l'entier pourrait être P>

checkint = @(x) ~mod(x,1) % Slowest, treat 0 as false


1 commentaires

Belle comparaison des méthodes. Mais utiliser l'approche la plus rapide est en quelque sorte sourde en l'informant deux fois. Mieux enregistrer le résultat de checkint dans une variable temporaire.



1
votes
output =

     1     2     3     4
   100   300   400   700

1 commentaires

! = n'est pas valide Syntaxe MATLAB; Utilisez ~ = à la place



1
votes

Nous pouvons générer une index logique basée sur une fonction de correctif () xxx


0 commentaires