MATLAB 全局变量和脚本

MATLAB Global Variable and Scripts

我有一个 m 文件 ParamStruct.m。以下是该文件的内容:

global Params
total_params = [];

Params.one   = 1;
Params.two   = 2;
Params.three = 3;

total_params = [total_params;Params];

Params.one   = 4;
Params.two   = 5;
Params.three = 6;

total_params = [total_params;Params];


for ii = length(total_params)
    
    Add_Param_Vals
end

然后我有另一个 m 文件,我将其用作名为 Add_Param_Values 的脚本。该文件的内容如下:

global Params

disp("adding values: ")
Params.one + Params.two

这两个 m 文件的目的是 1.) 在 ParamStruct.m 中定义两个 Params 结构,然后从 ParamStruct 调用 Add_Param_Values 以便每次调用时,我都可以利用当前的 Params由 ParamStruct 中的 for 循环索引的结构。例如,当我在输出中使用 运行 ParamStruct 时,我希望看到以下内容:

adding values:
ans =
     3

adding values:
ans =
     9

但我看到的却是

adding values:
ans =
     9

所以它似乎只利用了 total_params 变量中的最后一个元素,我不知道如何更正它。我不想修改 Add_Param_Vals m 文件中的任何内容,因为我不是它的所有者。有什么想法吗??

对不起 post。我能够弄清楚。这是我最后做的:

global Params
total_params = [];

Params.one   = 1;
Params.two   = 2;
Params.three = 3;

total_params = [total_params;Params];

Params.one   = 4;
Params.two   = 5;
Params.three = 6;

total_params = [total_params;Params];


for ii = 1:length(total_params)
    Params = total_params(ii);
    Add_Param_Vals
end