多个不同大小的输出功能?

use*_*128 2 matlab variadic-functions output

我需要让MATLAB返回不同大小的多个输出,即一个是n乘m矩阵,另一个是矢量

function output = name(arg1,arg2,...,argn)

    blabla

    output = {A;B};

end
Run Code Online (Sandbox Code Playgroud)

当我输入

{A;B}=name(arg1,arg2,...,argn)
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

错误:等号左侧的表达式不是赋值的有效目标.

我如何获得这些多输出?我不希望他们打印; 我需要在进一步的计算中使用输出.

Ben*_*_11 6

您还可以使用varargout选项进行功能输出,这样您就可以分配(信不信由你)可变数量的输出.

例如,考虑这个功能:

function [varargout] = YourFcn(arg1,arg2)

A = arg1;
B = arg2;

varargout = {A;B};

end
Run Code Online (Sandbox Code Playgroud)

然后你可以调用你的函数并在命令窗口或脚本中收集这样的结果,例如:

x = rand(1,10);
y = magic(5);

[A,B] = YourFcn(x,y)
Run Code Online (Sandbox Code Playgroud)

这导致A和B被分配输出:

A =

  Columns 1 through 5

    0.8147    0.9058    0.1270    0.9134    0.6324

  Columns 6 through 10

    0.0975    0.2785    0.5469    0.9575    0.9649


B =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9
Run Code Online (Sandbox Code Playgroud)