MATLAB的 – 从函数多个返回值?

我正在matlab中编写2个函数,一个初始化函数和一个函数来插入一个数组,把它当作一个双向链表。 但是,我的初始化函数只返回“ans =”和初始化的数组。 我怎么能也设置我的其他variables的值? 这是我的代码:

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

Matlab允许你返回多个值,也可以内联接收它们。

当你调用它时,接收内联variables:

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

我认为八度只返回一个值,这是第一个返回值,在你的情况下,'数组'。

Octave将其打印为“ans”。

其他人,“listp”,“freep”没有被打印。

因为它在function内出现。

试试这个:

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

而'数组','listp','freep'将打印为A,B和C.

改变你得到一个单一结果的函数= [array,listp,freep]。 所以只有一个结果要显示

在你要调用的函数中使用下面的代码,它会工作得很好。

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

这是从另一个函数和命令terminal调用函数的一种方法

  [aa bb cc] = yourfunction(optional); 

variablesaa,bb和cc现在包含返回variables。