Matlab 函数 - 如何将矢量输出捕获到单个变量中?

Matlab functions - how to capture vector outputs into a single variable?

我在提取各种函数的输出并在计算时定义它们时遇到问题。我想要一个主文档来执行如下任务:

fcost(变量)

--> 向量输出 f = 矢量输出。

具体代码如下:

function fcost(hours,heatcost,slack1,slack2,realdata)


ncalc = 4 * hours;

P = zeros(ncalc*3*4,1);

if realdata == 2;

    SIN = sin((1:ncalc*4)/8)*0.5+0.7

    P(1:3:end) = SIN(1:ncalc*4);
    P(2:3:end) = slack1;
    P(3:3:end) = slack2;

else

    P(1:3:end) = heatcost;
    P(2:3:end) = slack1;
    P(3:3:end) = slack2;

end
P
format short
end

问题在于该函数仅吐出矢量 - 并没有为要使用的主文件定义任何内容。

提前致谢!

显示 向量而不 return 编写的代码。您的代码的函数头很明显:

function fcost(hours,heatcost,slack1,slack2,realdata)

这声明了一个带有各种参数的函数 fcost,但它没有 return 任何东西。如果你想在调用fcost后returnP,你需要修改你的函数头为:

function P = fcost(hours,heatcost,slack1,slack2,realdata)

现在将此函数保存到一个名为 fcost.m 的文件中,然后在需要使用它时执行:

P = fcost(hours, heatcost, slack1, slack2, realdata);

fcost 的输出将存储在 P 中。因为您现在 returning P,您可能想要删除代码的最后两个冗长语句。具体删除这两行:

P
format short