我有多个函数文件中的代码,这些函数的输入存储在一个名为inputfile.m
(脚本文件)的文件中,其中我为输入分配了一些常量值。这些值充当几个名为degree_eq.m
(函数文件)的函数文件的输入。
我如何编写代码,以便每次执行时,函数文件都从inputfile.m
获取所需的输入。
答案 0 :(得分:1)
假设您有两个函数,一个是您的输入(inputfile
),另一个是您执行的操作(do_stuff
)。
function [a,b,c] = inputfile()
%define your constants
a=10;
b=100;
c=8.3;
function z = do_stuff()
[a, b, c] = inputfile() %takes the inputs from inputfile.m
z = a*c - b;
答案 1 :(得分:1)
您可以利用matlab变量在其范围之外持久化的事实。假设您在输入文件中定义了6个常量a,b,c,d,e,f。所以可以做的是,编写一个名为top.m的顶级脚本,类似于
inputfile
degree_eq1(a,b,c)
degree_eq2(c,d,e)
答案 2 :(得分:0)
第三种方法(结合Nirvedh Meshram和qbzenker答案)是在MATLAB函数中调用输入脚本。
优点是您不必指定输入脚本中需要或指定的参数,但这也是缺点,因为需要输入不明确。因此,它更容易出错。我只推荐这种方法用于大量输入变量。
inputfile.m :
a = 5;
b = 8;
c = 10;
degree_eq.m :
function d = degree_eq()
inputfile;
d = a + b + c;
end
作为替代,您可以指定要使用的输入文件:
degree_eq.m :
function d = degree_eq(inputFilename)
eval(inputFilename);
d = a + b + c;
end
并按如下方式调用:
degree_eq('inputfile');