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]
4 Réponses :
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
Bien que l'intention n'est pas claire, la création d'indexation à la matrice est la solution
Ma solution est p> la clé ici crée l'index sur Autres approches pour vérifier l'entier pourrait être P> 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>
checkint = @(x) ~mod(x,1) % Slowest, treat 0 as false
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 code> dans une variable temporaire.
output = 1 2 3 4 100 300 400 700
! = code> n'est pas valide Syntaxe MATLAB; Utilisez
~ = code> à la place
Nous pouvons générer une index logique basée sur une fonction de correctif ()