将输入文件与存储在其中的变量链接到多个功能文件

时间:2017-05-01 17:29:41

标签: matlab

我有多个函数文件中的代码,这些函数的输入存储在一个名为inputfile.m(脚本文件)的文件中,其中我为输入分配了一些常量值。这些值充当几个名为degree_eq.m(函数文件)的函数文件的输入。

我如何编写代码,以便每次执行时,函数文件都从inputfile.m获取所需的输入。

3 个答案:

答案 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');