web-dev-qa-db-fra.com

MATLAB - plusieurs valeurs de retour d'une fonction?

J'écris 2 fonctions dans matlab, une fonction d'initialisation et une fonction pour insérer des éléments dans un tableau en le traitant comme une liste doublement liée. Cependant, ma fonction d'initialisation ne renvoie que "ans =" ​​et le tableau initialisé. Comment puis-je lui demander de définir également les valeurs de mes autres variables? Voici mon code:

function [ array, listp, freep ] = initialize( size )
    array = zeros(size, 3);
    listp = 0;
    freep = 1;
end
50
Nick

Matlab vous permet de renvoyer plusieurs valeurs ainsi que de les recevoir en ligne.

Lorsque vous l'appelez, recevez des variables individuelles en ligne:

[array, listp, freep] = initialize(size)
84
Mikhail

Je pense qu'Octave ne renvoie qu'une seule valeur qui est la première valeur de retour, dans votre cas, "tableau".

Et Octave l'imprime comme "ans".

D'autres, "listp", "freep" n'ont pas été imprimés.

Parce qu'il est apparu dans la fonction.

Essayez ceci:

[ A, B, C] = initialize( 4 )

Et le "tableau", "listp", "freep" sera imprimé comme A, B et C.

0
Franci