一、一般步骤
生成带有噪声的正态分布数据;定义拟合模型。
model = @(params, x) normpdf(x, params(1), params(2)); 
初始参数猜测
initial_guess = [mu, sigma]; 
设置约束条件
lb = [0, 0]; % 参数的最小值
ub = [10, 10]; % 参数的最大值 
定义优化问题
opts = optimoptions('fmincon', 'Display', 'iter');  % 使用 fmincon 函数来进行有约束条件的最小化问题求解,以限制拟合结果的最大值和最小值
problem = createOptimProblem('fmincon', 'x0', initial_guess, 'objective', ...
    @(params) sum((model(params, x) - y).^2), 'lb', lb, 'ub', ub, 'options', opts); 
执行优化
ms = MultiStart('Display', 'off');
[result_params, ~, ~, ~, ~] = run(ms, problem, 10); % 用多次起始点运行以获得更好的结果 
提取最优参数
mu_fit = result_params(1);
sigma_fit = result_params(2); 
绘制拟合结果

二、完整程序
按需自取。
 链接:https://pan.quark.cn/s/02b703d0fe75















![[vscode]使用cmake时将命令行参数传递给调试目标](https://img-blog.csdnimg.cn/direct/1949876c1cb74d81b41dd1df671864d7.png)



