wujiang_lee 发表于 2009-12-26 17:09

【求助】矩阵赋值后任为empty

错误提示:
??? Subscript indices must either be real positive integers or logicals.
Error in ==> test11 at 1404
disp(sprintf('第%d次运行:找到的最优值J:%.10f,实际的函数最优值是0,收敛门槛是%.8f',iii,findJ(end),threshold));


就是说里面的findJ(end)的end为0.

之前的有 bestJ(k,n)=fi(indb(:,n),n);
                        。。。。。
               findJ(k,1)=bestJ(k,1);......
    其中k为1,findJ和bestJ有初始化: bestJ = []; findJ=[];

而fi(indb(:,n),n)为30x1 double。但是bestJ(k,n)=fi(indb(:,n),n);后bestJ认为 empty 0 x 0。

拜求高人解答。谢谢大家!

ChaChing 发表于 2009-12-26 20:33

没看出disp有语法错误!
在disp前先看看相关变数(如iii,findJ,threshold)有无异常!

wujiang_lee 发表于 2009-12-27 01:02

回复 沙发 ChaChing 的帖子

就是findJ有问题,为empty

说明之前对findJ的赋值不成功。但是我不知道为什么。。。。。。。。。。。。。:@Q

ChaChing 发表于 2009-12-27 23:13

原帖由 wujiang_lee 于 2009-12-26 17:09 发表 http://www.chinavib.com/forum/images/common/back.gif
...而fi(indb(:,n),n)为30x1 double。但是bestJ(k,n)=fi(indb(:,n),n);后bestJ认为 empty 0 x 0
若LZ确认fi(indb(:,n),n)为30x1 double, 则一定是bestJ(k,n)=fi(indb(:,n),n)有问题!?
但是别人又不知道n是多少? k是多少? 怎知道bestJ为何变成 empty 0 x 0 ???
至少个人没那麽强!:@)

wujiang_lee 发表于 2009-12-28 22:08

回复 地板 ChaChing 的帖子

嘿嘿谢谢

我找出问题了之前的一个while循环没有进入 导致有些语句没有执行
最近在做分层克隆 免疫优势结合模拟退火头大

ChaChing 发表于 2009-12-28 22:53

恭贺了! 凡事都不要急
心细些多使用debug!
页: [1]
查看完整版本: 【求助】矩阵赋值后任为empty