![]() |
[求助]为什么matlab自动关闭!
这些天一直在关注多目标优化的研究,我编了一个程序,调用matlab的优化工具箱的fminimax函数,结果只要程序一运行matlab就自动关闭了,这是为什么?
下面把程序代码贴出来,请帮忙分析一下。 执行主文件如下: x=zeros(1,2); x0=x; C1=[0.8,-0.74,0.5,-0.2;-1,0.1,0.3,-0.5]; C2=[-0.5,0.2,-0.35,0.4;0.1,0.45,-0.7,-0.61]; X=[-1,-1;-1,1;1,-1;1,1]; Bound_up=[1,1]; Bound_down=[-1,-1]; save C1 C1; save C2 C2; save X X; solver=fminimax(@fun_obj,x0,[],[],[],[],Bound_down,Bound_up,@fun_nonlcon) 下面是目标函数和约束函数的代码: 目标函数: function y=fun_obj(x) load X; load C1; n=length(C1(:,1)); m=length(x); m1=length(X); m2=length(C1(1,:)); if(m~=m1 || m~=m2 || m1~=m2) exit; end cc=1; y=zeros(2,1); for jj=1:m for ii=1:n y(jj)=y(jj)+C1(1,ii)*sqrt(abs(x-X(ii,:))^2+cc^2); end end 约束函数: function y=fun_nonlcon(x) load X; load C2; n=length(C2(:,1)); m=length(x); m1=length(X); m2=length(C2(1,:)); if(m~=m1 || m~m2 || m1~m2) exit; end cc=1; y=zeros(2,1); for jj=1:m for ii=1:n y(jj)=y(jj)+C2(1,ii)*sqrt(abs(x-X(ii,:))^2+cc^2); end end 注,我的机器的cpu是intel的,不是AMD的! [url=http://topic.csdn.net/u/20070927/10/ca2ee7dd-d1f5-473e-8f86-fd4f3f959999.html]MATLAB自动关闭问题[/url] 我已经试过这里的方法,不行! 请大虾们给点建议吧,我都快疯了! |
回复: [求助]为什么matlab自动关闭!
我也曾经出国这样的问题 但不是用这个函数 后来换了高的版本之后就没有问题了
|
回复: [求助]为什么matlab自动关闭!
可能是你的matlab版本不够高,或者是在运行时内存不够用,你把matlab的real-time关了,再试试。程序没什么问题
|
回复: [求助]为什么matlab自动关闭!
谢谢wangzongxin306帮顶,我用matlab2008r2试了下,没有问题。
看来真的要升级matlab了。 |
所有时间均为北京时间。现在的时间是 12:29。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.