Cette fonction MATLAB renvoie un vecteur de résultats
Si j'ai une fonction dans MATLAB, et j'ai une boucle qui calcule deux variables, quelque chose comme:
for index = 1:1000,
var1 = 0.0;
var2 = zeros(size(someMatrix));
...
%some calculus...
...
end
Comment puis-je définir la fonction pour le retour de ces deux variables, mais avec tous les changements qu'ils ont subis dans la boucle, comme
var1 = [1, 3, 5, 7]
var2 = some matrix,
Ainsi, au lieu de la fonction renvoie une valeur unique. Comment puis-je retourner un vecteur de résultats, obtenus à partir de la boucle?
double possible de Comment capturer une sortie à partir d'une fonction dans MATLAB?
Matlab est la seule langue que je connais qui peut retourner plus d'une variable à partir d'une fonction. C'est une fonctionnalité vraiment cool, et je me demande si une autre langue est ce trop.
Python autoriser plusieurs valeurs de retour. Voir Plusieurs Valeurs de Retour pour un exemple. Vous pouvez rechercher les multiple-returns.py.
peut-être que ce changement parce qu'il renvoie comme l'histoire de l'2 vars à l'intérieur d'une boucle. non seulement leurs valeurs
Matlab est la seule langue que je connais qui peut retourner plus d'une variable à partir d'une fonction. C'est une fonctionnalité vraiment cool, et je me demande si une autre langue est ce trop.
Python autoriser plusieurs valeurs de retour. Voir Plusieurs Valeurs de Retour pour un exemple. Vous pouvez rechercher les multiple-returns.py.
peut-être que ce changement parce qu'il renvoie comme l'histoire de l'2 vars à l'intérieur d'une boucle. non seulement leurs valeurs
OriginalL'auteur cMinor | 2011-02-09
Vous devez vous connecter pour publier un commentaire.
Si je savais ce que vous essayiez de le faire à un niveau supérieur, je pourrais être en mesure de vous donner les meilleurs conseils. Quand j'ai lu cette question, je me demande "Pourquoi le ferait-il le faire?". Il ya des Chances est une bien meilleure façon de faire ce que vous essayez de faire.
Cela étant dit, je pense que vous essayez de faire quelque chose comme cela.
Je ne dis pas que cette fonction est un bon moyen de faire ce que vous essayez de faire, mais je pense qu'il accomplit le travail. Si elle le fait, laisser un commentaire, alors peut-être que quelqu'un d'autre peut le balancer par et vous dire comment le faire de manière plus efficace/plus sûr.
La solution que j'ai fourni va être exposé à des problèmes. Si votre variable est modifiée à deux reprises dans la même boucle, voulez-vous de voir ou pas? Si vous mettez à jour un élément d'une matrice, voulez-vous de voir ou pas? Pouvez vos variables de modifier les dimensions ou les types dans la boucle? Si les variables ne pas modifier les valeurs dans la boucle, vous pouvez inclure ces valeurs de toute façon?
Peut-être que cette solution est la meilleure pour ce que vous essayez de faire:
La meilleure pratique consiste à séparer les variables de sortie avec des virgules. [Fix]
OriginalL'auteur Miebster
Vous pouvez ensuite appeler la fonction comme ceci
J'ai changé l'exemple un peu, mais c'est fondamentalement la même. Est-ce que vous recherchez?
Yep, c'est vrai
OriginalL'auteur Lucas