声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1434|回复: 5

[编程技巧] 【求助】矩阵赋值后任为empty

[复制链接]
发表于 2009-12-26 17:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
错误提示:  
??? 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。

拜求高人解答。谢谢大家!
回复
分享到:

使用道具 举报

发表于 2009-12-26 20:33 | 显示全部楼层
没看出disp有语法错误!
在disp前先看看相关变数(如iii,findJ,threshold)有无异常!
 楼主| 发表于 2009-12-27 01:02 | 显示全部楼层

回复 沙发 ChaChing 的帖子

就是findJ有问题,为empty

说明之前对findJ的赋值不成功。但是我不知道为什么。。。。。。。。。。。。。:@Q
发表于 2009-12-27 23:13 | 显示全部楼层

若LZ确认fi(indb(:,n),n)为30x1 double, 则一定是bestJ(k,n)=fi(indb(:,n),n)有问题!?
但是别人又不知道n是多少? k是多少? 怎知道bestJ为何变成 empty 0 x 0 ???
至少个人没那麽强!:@)
 楼主| 发表于 2009-12-28 22:08 | 显示全部楼层

回复 地板 ChaChing 的帖子

嘿嘿  谢谢

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

评分

1

查看全部评分

发表于 2009-12-28 22:53 | 显示全部楼层
恭贺了! 凡事都不要急
心细些多使用debug!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 19:37 , Processed in 0.060429 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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