Подтвердить что ты не робот

MATLAB - множественные возвращаемые значения из функции?

Я пишу 2 функции в matlab, функцию инициализации и функцию для вставки элементов в массив, рассматривающий его как двусвязный список. Однако моя функция инициализации возвращает только "ans =" и инициализированный массив. Как я могу установить значение других переменных? Здесь мой код:

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

Ответ 1

Matlab позволяет вам возвращать несколько значений, а также получать их в строке.

Когда вы вызываете его, получайте отдельные переменные inline:

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

Ответ 2

Я думаю, что Octave возвращает только одно значение, которое является первым возвращаемым значением, в вашем случае "array".

И Octave напечатайте его как "ans".

Другие, 'listp', 'freep' не были напечатаны.

Потому что он появился внутри функции.

Попробуйте следующее:

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

И "массив", "listp", "freep" будут печататься как A, B и C.

Ответ 3

Измените функцию, в которой вы получите один результат: результат = [массив, listp, freep]. Таким образом, отображается только один результат.

Ответ 4

Используйте в функции, которую вы вызовете, и она будет работать нормально.

     [a b c] = yourfunction(optional)
     %your code
     a = 5;
     b = 7;
     c = 10;
     return
     end

Это способ вызова функции как из другой функции, так и из командной строки

     [aa bb cc] = yourfunction(optional);

Переменные aa, bb и cc теперь содержат возвращаемые переменные.