Je parcours une boucle for, en extrayant à chaque fois certains éléments d'un tableau, par exemple element1, element2, etc. Comment puis-je regrouper tous les éléments que j'ai extraits ensemble pour avoir une liste d'eux?Pour les boucles dans Matlab
Répondre
construire la liste que vous allez:
for i = 1:whatever
' pick out theValue
yourList(i) = theValue
end
Je suppose que vous choisissez un élément par itération de la boucle. Si ce n'est pas le cas, maintenez simplement un compteur et utilisez-le au lieu de i
.
En outre, je suis pas en supposant que vous sortez vos éléments de la même position dans votre tableau chaque fois à travers la boucle. Si vous faites cela, examinez la suggestion de Donnie.
John a couvert les bases de for
boucles, donc ...
Notez que le code Matlab est souvent plus efficace si vous vectoriser au lieu d'utiliser des boucles (ce qui est moins vrai que l'habitude d'être). Par exemple, si dans votre boucle, vous êtes juste saisir la première valeur de chaque ligne d'une matrice, au lieu de vous en boucle pouvez faire:
yourValues = theMatrix(:,1)
Lorsque l'opérateur :
solo indique « toutes les valeurs possibles pour cet indice » . Si vous venez de commencer dans matlab il est certainement utile de lire sur matrix indexing in matlab (entre autres sujets).
Dans MATLAB, vous pouvez toujours effectuer une opération en boucle. Mais la méthode recommandée « Matlab » est d'éviter looping:
Supposons que vous voulez obtenir le sous-ensemble des éléments du tableau
destArray = [];
for k=1:numel(sourceArray)
if isGoodMatch(sourceArray(k))
destArray = [destArray, sourceArray(k)]; % This will create a warning about resizing
end
end
Vous effectuez la même tâche sans boucle:
matches = arrayfun(@(a) isGoodMatch(a), sourceArray); % returns a vector of bools
destArray = sourceArray(matches);
- 1. Comment optimiser les boucles MATLAB?
- 2. vectorisation boucles dans Matlab - Problèmes de performances
- 3. Genshi: imbriqué pour les boucles
- 4. OpenMP pour les boucles imbriquées?
- 5. lot Nested pour les boucles
- 6. MATLAB: Réduire les cellules de code dans l'éditeur de MATLAB
- 7. Continuer dans les boucles imbriquées
- 8. Pointeurs dans les boucles For
- 9. Eviter les boucles dans R
- 10. MATLAB: Extraire plusieurs parties d'une matrice sans utiliser de boucles
- 11. sont pour les boucles possibles dans les baves?
- 12. flash: pour les boucles qui tournent lentement
- 13. coincé avec compréhension pour les boucles 2
- 14. Diminuer pour les boucles en Python impossible?
- 15. MonoTouch - Foreach vs pour les boucles (performance)
- 16. iterator pour les boucles avec pause
- 17. outil pour enlever toutes les boucles dans le code C
- 18. ++ i ou i ++ dans les boucles?
- 19. éviter les boucles xml dans jstl
- 20. Dans les boucles, est-ce important?
- 21. Jquery - $ (this) dans les boucles imbriquées
- 22. Remplacer les boucles dans la fonction R
- 23. Comment puis-je générer cette matrice 3D sans boucles pour MATLAB?
- 24. La différence entre les boucles
- 25. {% cycle%} contourne les boucles imbriquées?
- 26. Question sur les boucles complexes
- 27. Enregistrer les paramètres dans matlab
- 28. Débutant, tandis que les boucles
- 29. Besoin d'aide avec les boucles
- 30. Problème avec les boucles imbriquées
Si vous Si vous ajoutez seulement à votre tableau, vous pouvez utiliser (fin + 1) au lieu de garder un compteur. La variable result doit être initialisée avant, par exemple à []. – Kleist
+1 pour la référence circulaire :) – walkytalky
@Kleist: Il est préférable d'initialiser la variable à sa taille finale, par ex. 'yourList = zéros (peu importe, 1)'. Faire pousser un tableau à l'intérieur d'une boucle peut beaucoup ralentir la boucle. – Jonas