multiple - MATLAB: ¿valores de retorno múltiples de una función?
matlab title multiple lines (4)
Cambia la función que obtienes un solo resultado = [matriz, listp, freep]. Entonces, solo hay un resultado para mostrar
Estoy escribiendo 2 funciones en matlab, una función de inicialización y una función para insertar elementos en una matriz tratándola como una lista doblemente vinculada. Sin embargo, mi función de inicialización solo devuelve "ans =" y la matriz inicializada. ¿Cómo puedo tenerlo también establecer valores de mis otras variables? Aquí está mi código:
function [ array, listp, freep ] = initialize( size )
array = zeros(size, 3);
listp = 0;
freep = 1;
end
Creo que Octave solo devuelve un valor que es el primer valor de retorno, en tu caso, ''array''.
Y Octave lo imprime como "ans".
Otros, ''listp'', ''freep'' no se imprimieron.
Porque apareció dentro de la función.
Probar esto:
[ A, B, C] = initialize( 4 )
Y el ''conjunto'', ''listp'', ''freep'' se imprimirán como A, B y C.
Matlab le permite devolver múltiples valores y recibirlos en línea.
Cuando lo llame, reciba variables individuales en línea:
[array, listp, freep] = initialize(size)
Use lo siguiente en la función a la que llamará y funcionará perfectamente.
[a b c] = yourfunction(optional)
%your code
a = 5;
b = 7;
c = 10;
return
end
Esta es una forma de llamar a la función desde otra función y desde el terminal de comando
[aa bb cc] = yourfunction(optional);
Las variables aa, bb y cc ahora contienen las variables de retorno.