“常用公式”在线计算,“设计手册”在线查询
比如某一个变量取不到值之类。怎么回事?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 支持支持 反对反对

共 3 个关于本帖的回复 最后回复于 2014-6-1 20:03

沙发
石光 新来的 发表于 2014-6-1 14:23:41 | 只看该作者
研发埠培训中心
你可以看matlab的帮助文档里面的Passing Extra Parameters这一节,讲了有三种方法给优化的目标函数传递独立变量,要用并行的话不能使用全局变量的方法,可以采用匿名函数的方法。Write an M-file containing the following code:function y = parameterfun(x,a,b,c)y = (a - b*x(1)^2 + x(1)^4/3)*x(1)^2 + x(1)*x(2) + ...(-c + c*x(2)^2)*x(2)^2;Assign values to the parameters and define a functionhandle f to an anonymous function by entering thefollowing commands at the MATLAB prompt:a = 4; b = 2.1; c = 4; % Assign parameter valuesx0 = [0.5,0.5];f = @(x)parameterfun(x,a,b,c)Call the solver fminunc withthe anonymous function:[x,fval] = fminunc(f,x0)f就是已经传递了独立变量的目标函数的函数句柄上面的例子是用 fminunc求解的,用ga也一样
板凳
谭帼馨 新来的 发表于 2014-6-1 20:02:24 | 只看该作者
研发埠人才中心
dimension表示 维数,能用全局变量,a(0)无效 表示没有保存好数据,耐心点,再看看?……
地板
颜文斌 新来的 发表于 2014-6-1 20:03:04 | 只看该作者
有一个前提是,我把代码从for 直接改成parfor。for 语句,使用serial 计算就没问题。我现在倒是找到解决方法了,直接保存成文件,然后再子函数里读文件,就不用全局变量了,倒是可以,运行效率下降的比较多。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们

360网站安全检测平台