You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB调用依赖全局变量的外部脚本仅读取最后赋值的问题咨询

问题原因
  • 循环逻辑错误:你写的for ii = length(total_params)只会循环1次,Matlab中for变量等于单个数值时仅执行一次循环,这里length(total_params)值为2,所以循环仅用了第二组参数运行一次。
  • 全局变量未更新:两组参数存入total_params数组后,全局变量Params的值停留在最后赋值的第二组(one=4、two=5、three=6),循环过程中没有将total_params对应下标的结构体赋值给全局Params,调用脚本时只会读到最后一组值。
修正方案

无需修改Add_Param_Vals.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 = 1:length(total_params)
    % 将当前循环对应的参数赋值给全局Params变量
    Params = total_params(ii);
    Add_Param_Vals
end
修正后输出结果
adding values:
ans =
     3

adding values:
ans =
     9

内容的提问来源于stack exchange,提问作者CircAnalyzer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:06:03