我想知道是否可以从脚本中创建一个函数。为了澄清,我在Matlab中有脚本来计算商品的季节性溢价。由于我有多种商品,我制作了多个脚本,每个脚本都有相同的季节性编码。
现在我想将季节性脚本转换为函数,以便有一个清晰的主题! (为了计算季节性,我不得不使用200行)
关于季节性脚本的好处是我只有一个输入矩阵,输出将是三个矩阵。
或者是否可以在脚本中执行不同的脚本而不复制每一行?
答案 0 :(得分:1)
请参阅功能文档here。这是一个例子:
function yourOutput = Seasonality(yourInput)
yourOutput = yourInput + rand(); % Replace with your own code.
end
为清楚起见,此代码可另存为单独的.m文件。要在主脚本中使用它,只需像使用任何其他功能一样使用Seasonality
。如果仍然不清楚,请将您的代码发布为您的问题的编辑,我会看一下并告诉您该怎么做。
答案 1 :(得分:0)
假设您有两个MATLAB
脚本,如下所示:
x = 42
y = 43
% do some complicated calculations with x and y and display the result
% ...
和
w = 1
z = 0
% do the calculations from the first script, but with the values w and z
% ...
你可以简单地创建一个接受一些输入参数并返回结果的函数。 对于我们的简单示例,我们可以写:
function result = my_function(argument1, argument2)
% do some complicated calculations with argument1 and argumen2
% ...
% assign result of the computation to the variable result
end
现在,您只需使用所需的任意两个输入值调用my_function
即可。
有关详细信息,请参阅http://www.mathworks.de/de/help/matlab/ref/function.html - 这也将解释如何返回多个结果值。
以下是您的功能如何运作的快速草图:
function [M1 M2 M3] = my_function(input_argument)
% do some complicated calculations for M1, M2, M3 based on input_argument
% ...
% assign some bogus values to M1, M2, M3 for demonstration
M1 = [1, 2; 3, 4];
M2 = [5, 6, 7; 8, 9, 10];
M3 = [11, 12; 13, 14; 15, 16];
end
在解释器中调用my_function
将如下所示:
>> [M1 M2 M3] = my_function(42)
M1 =
1 2
3 4
M2 =
5 6 7
8 9 10
M3 =
11 12
13 14
15 16
请注意,保存my_function
的文件应命名为my_function.m
。