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
我有一个 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