| 查看: 770 | 回复: 5 | ||||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||||
tutuzhu2013银虫 (小有名气)
|
[求助]
Matlab中如何把常量传递给lsqcurvefit,悬赏100金币 已有1人参与
|
|||
|
function F = myfun(x,xdata) F=fd.*exp(-xdata.*Dn)+(1-fd).*sqrt(pi./2).*x(1).*exp(xdata.*0.5.*(-2.*(Dn+x(2))+xdata.*x(1).^2)).*erfc((xdata.*x(1).^2 - x(2))./(sqrt(2).*x(1)))./(sqrt(pi./2).*x(1).*(1 + erf(x(2)./(sqrt(2).*x(1))))); fd,Dn是需要传递的常量 |
» 猜你喜欢
假如你的研究生提出不合理要求
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有27人回复
所感
已经有3人回复
要不要辞职读博?
已经有7人回复
不自信的我
已经有11人回复
北核录用
已经有3人回复
实验室接单子
已经有3人回复
磺酰氟产物,毕不了业了!
已经有8人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有10人回复
26申博(荧光探针方向,有机合成)
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab如何把图像中的一些杂点滤除
已经有2人回复
matlab中如何把数据保存成.txt格式(具有一定要求)?
已经有12人回复
如何该这段MATLAB程序(把一个常量改成变量)
已经有4人回复
在matlab中如何提取多元方程的系数?求教各位高手
已经有2人回复
如何将MATLAB中计算得到的矩阵保存到txt文档中
已经有5人回复
MATLAB中如何实现把数组分类的请教
已经有3人回复
MATLAB中如何实现把数组分类的请教
已经有2人回复
方程组的解作为初始值,进行迭代.matlab中如何编程?求指导
已经有2人回复
e^{-a\tau}在MATLAB中如何描述
已经有6人回复
matlab生成的图像如何导入comsol中
已经有7人回复
求助!!Matlab中如何对一个信号做傅里叶逆变换?
已经有5人回复
matlab如何清空程序运行过程中产生的矩阵
已经有4人回复
求助Matlab中如何把几个比特合为一个symbol
已经有4人回复
Matlab 中的 坐标取向轴如何画?
已经有4人回复
如何通过matlab把文件夹中的部分文件拷贝到另一个文件夹中?
已经有4人回复
matlab中如何把数据保存成.txt格式?
已经有8人回复
matlab中如何将双坐标系图中的另外一个坐标系设置为当前坐标系呢?
已经有10人回复
matlab中如何修改横轴坐标的问题
已经有0人回复
求助:如何在matlab中把figure的曲线对应的data导出来xls或者txt格式
已经有8人回复
【求助】matlab中如何将程序的结果输出到一个文件中
已经有11人回复
tutuzhu2013
银虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 298.6
- 散金: 330
- 帖子: 64
- 在线: 50.7小时
- 虫号: 2830486
- 注册: 2013-11-27
- 专业: 磁共振结构成像与疾病诊断
3楼2015-12-02 15:43:39
512095518
专家顾问 (正式写手)
-

专家经验: +52 - 仿真EPI: 1
- 应助: 118 (高中生)
- 金币: 7665.4
- 红花: 78
- 帖子: 712
- 在线: 186.1小时
- 虫号: 3195576
- 注册: 2014-05-10
- 性别: GG
- 专业: 大气环境与全球气候变化
- 管辖: 计算模拟
【答案】应助回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
tutuzhu2013: 金币+100, ★★★很有帮助 2015-12-02 15:42:10
感谢参与,应助指数 +1
tutuzhu2013: 金币+100, ★★★很有帮助 2015-12-02 15:42:10
|
参数传递有两种方法,全局变量和匿名函数。 这里我建议你用全局变量,比较简单 首先你要在你这个函数文件中设置全局变量, function F = myfun(x,xdata) global fd Dn F=fd.*exp(-xdata.*Dn)+(1-fd).*sqrt(pi./2).*x(1).*exp(xdata.*0.5.*(-2.*(Dn+x(2))+xdata.*x(1).^2)).*erfc((xdata.*x(1).^2 - x(2))./(sqrt(2).*x(1)))./(sqrt(pi./2).*x(1).*(1 + erf(x(2)./(sqrt(2).*x(1))))); 然后你在你做拟合的m文件中,也加上定义全局变量 就是直接把global fd Dn加到你文件的第一行就可以了 这样在调用你的myfun函数时,系统会自动把fd和Dn的值赋给你的myfun函数 |

2楼2015-12-02 13:33:31
512095518
专家顾问 (正式写手)
-

专家经验: +52 - 仿真EPI: 1
- 应助: 118 (高中生)
- 金币: 7665.4
- 红花: 78
- 帖子: 712
- 在线: 186.1小时
- 虫号: 3195576
- 注册: 2014-05-10
- 性别: GG
- 专业: 大气环境与全球气候变化
- 管辖: 计算模拟

4楼2015-12-02 16:39:33
512095518
专家顾问 (正式写手)
-

专家经验: +52 - 仿真EPI: 1
- 应助: 118 (高中生)
- 金币: 7665.4
- 红花: 78
- 帖子: 712
- 在线: 186.1小时
- 虫号: 3195576
- 注册: 2014-05-10
- 性别: GG
- 专业: 大气环境与全球气候变化
- 管辖: 计算模拟
|
刚刚看了下,应该是这样的 x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options) lb是下边界,ub是上边界,options是优化选项,可以直接选择LM算法 我给你举个例子 xdata = linspace(0,3); ydata = exp(-1.3*xdata) + 0.05*randn(size(xdata)); lb = [0,-2]; ub = [3/4,-1]; fun = @(x,xdata)x(1)*exp(x(2)*xdata); x0 = [1/2,-2]; opts = optimset('Algorithm','Levenberg-Marquardt'); x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,opts); plot(xdata,ydata,'ko',xdata,fun(x,xdata),'b-') legend('Data','Fitted exponential') title('Data and Fitted Curve') |

5楼2015-12-02 16:53:17












回复此楼