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

时间:2015-02-17 20:04:21

标签: matlab function vector

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

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

问题是该函数只吐出向量 - 并没有定义要使用的主文件的任何内容。

提前致谢!

1 个答案:

答案 0 :(得分:1)

仅编写的代码显示向量,但不返回它。代码的函数头显示了这一点:

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

这声明了一个带有各种参数的函数fcost,但它不会返回任何内容。如果您想在调用P后返回fcost,则需要将函数标题修改为:

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

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

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

fcost的输出将存储在P中。因为您现在返回P,所以您可能希望删除代码的最后两个详细语句。具体来说,删除这两行:

P
format short