MATLAB - 函数的多个返回值?

时间:2010-11-15 19:40:51

标签: matlab return-value

我在matlab中编写了2个函数,一个初始化函数和一个将项插入数组的函数,将其视为双向链表。但是,我的initialize函数只返回“ans =”和初始化数组。我怎样才能设置其他变量的值?这是我的代码:

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

4 个答案:

答案 0 :(得分:82)

Matlab允许您返回多个值以及内联接收它们。

当你调用它时,接收内联的单个变量:

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

答案 1 :(得分:0)

我认为Octave只会返回一个值,这是第一个返回值,在您的情况下,' array'。

并且Octave将其打印为" ans"。

其他人,' listp',' freep'没有打印。

因为它出现在函数内。

试试这个:

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

'阵列',' listp'' freep'将打印为A,B和C.

答案 2 :(得分:-1)

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

答案 3 :(得分:-1)

在您将调用的函数中使用以下内容,它将正常工作。

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

这是一种从另一个函数和命令终端

调用该函数的方法
     [aa bb cc] = yourfunction(optional);

变量aa,bb和cc现在包含返回变量。