《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 982|回复: 1
收起左侧

[提问] 请MATLAB 高手帮忙看看这2段小程序有什么不同

[复制链接]
发表于 2015-10-31 14:53:09 | 显示全部楼层 |阅读模式
程序1:
    maxV=func(tempSample); %将函数计算值存给maxV变量
if maxV>funcV(:,k) %如果maxV大于数组中的第K个值
     funcV(:,k)=maxV; %则用maxV替换数组中的第K个值
    optimalSolution(:,k)=tempSample;
                                                               
end

程序2:
                                                       
                                                        maxV=func(tempSample); %将函数计算值存给maxV变量
                                                        if maxV>maxValue %如果maxV大于临时变量maxValue(保存最新的的最大值)
                                                                    maxValue=maxV; %则将maxValue值更新为当前最大值
                                                                    funcV(:,k)=maxValue;%将最大值存入数组中第k个位置
                                                                    optimalSolution(:,k)=tempSample;
                                                               
                                                        end

这两段代码表达的意思一样,程序1是将新的函数计算值直接与数组中的第K个值比较,如果比它大则替换它;程序2是将新的函数值与临时最大值比较,不断更新临时最大值,并将最终的最大值存入数组中的第k个值。
结果是用程序1,运行很顺利;用程序2,进入死循环。

请高手指点迷津,先谢啦~
发表于 2015-10-31 16:28:54 | 显示全部楼层
第二个里面你的maxValue 怎么替换?问题就出在你的maxValue更新上
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号-2 

GMT+8, 2022-8-18 19:53 , Processed in 0.052448 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表