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