如何在Matlab中将多个函数的值提取为一个?

时间:2015-03-24 23:26:26

标签: matlab

我正在使用具有编写新变量的多个函数的代码。我试图将所有不同功能的值保存到另一个功能中。

示例:

function LoadNews(obj)
    args.sir = obj.sir;
    args.date = obj.date;
    args.news = news;
    BSQL.save_star_stats(args);    

function LoadMoons(obj)   
    args.moon = moon;
    args.comet = comet;
    BSQL.save_star_stats(args); 

function LoadLight(obj)   
     args.light = light;
     args.speed = speed;
     BSQL.save_star_stats(args); 

运行此操作后,出现以下错误:

Reference to non-existent field 'comet'.

是否有一种简单的方法可以从多个函数中获取值并将它们保存为一个?

1 个答案:

答案 0 :(得分:0)

如果我要解释你想要做什么,你希望在每个函数调用时改变args。具体来说,您希望args记住每个函数调用时分配给它的所有字段。通过将每个函数的输出设置为args,并将其作为输入提供,可以非常轻松地完成此操作。简单地说:

function args = LoadNews(args, obj)
    args.sir = obj.sir;
    args.date = obj.date;
    args.news = news;
    BSQL.save_star_stats(args);    

function args = LoadMoons(args, obj)   
    args.moon = moon;
    args.comet = comet;
    BSQL.save_star_stats(args); 

function args = LoadLight(args, obj)   
     args.light = light;
     args.speed = speed;
     BSQL.save_star_stats(args); 

完成后,您可以尝试调用代码:

args = LoadNews(args, obj);
args = LoadMoons(args, obj);
args = LoadLight(args, obj);

考虑到代码的当前状态及其上下文,这是我最好的猜测。完成上述代码后,args应该记住您在运行所有函数时所做的一切。