声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1836|回复: 13

[编程技巧] Subscript indices must either be real positive integers or logicals出错求助

[复制链接]
发表于 2008-5-7 16:34 | 显示全部楼层 |阅读模式

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

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

x
在坛子里也看到了一个类似的帖子,但和我的不大一样

我是初学者,也是照猫画虎,只是想画几个图而已,但是调试了好多次都出问题。现给出程序
clear;
a=0.552;
d(1)=0.8000;
d(2)=0.7250;
b(1)=0.7600;
b(2)=0.4185;
c(1)=0.1880;
k=0.8848;
da=0.0001;

Na=size(da);  %range of basion
Na=Na(2);
T=1000;  % time steps
for i=1:Na
   %generate the time series
   L=zeros(1,T);
   M=zeros(1,T);
   N=zeros(1,T);
     L(1)=0.6;% initial values
     M(1)=0.4;
     N(1)=0.5;
     c2=0.0+i*da;
     for t=1:T%以下为方程
         L(t+1)=b(1)*M(t)-d(1)*L(t)-k(L(t)+M(t))*L(t)-c(1)*L(t)*N(t)+L(t);
         M(t+1)=(b(2)-d(2))*M(t)-k(L(t)+M(t))*M(t)-c(1)*M(t)*N(t)+M(t);
         N(t+1)=N(t)*(-a-b(2)*N(t)+c2*L(t))+N(t);   
     end;
     H=L(T/2+1:T);
     hold on
     plot(c2,H(T/2-200:T/2),'k.','markersize',4);
    i;
end
xlabel('c2');
ylabel('L');

运行,提示是??? Subscript indices must either be real positive integers or logicals.

看之前那帖子,大大说是下标不为正整数就会出现这问题。但我怎么也找不到。。。人比较笨,又是新手,请多帮忙,谢谢!



我在继续修改,谢谢大家!

[ 本帖最后由 他的影子 于 2008-5-7 16:53 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-5-7 16:37 | 显示全部楼层
原帖由 他的影子 于 2008-5-7 16:34 发表
在坛子里也看到了一个类似的帖子,但和我的不大一样

我是初学者,也是照猫画虎,只是想画几个图而已,但是调试了好多次都出问题。现给出程序

clear;
d(1)=0.8000;
d(2)=0.7250;
b(1)=0.7600;
b(2)=0.4185; ...
置顶帖找答案,这些常见错误我们都整理了,别当它们是摆设
 楼主| 发表于 2008-5-7 16:39 | 显示全部楼层
谢谢,刚来对规矩不是很了解,请见谅

再次感谢eight大的处理速度。我去看置顶,再有问题会在这里跟帖求教

由于论文赶的比较急所以方法欠妥,不好意思。
发表于 2008-5-7 16:42 | 显示全部楼层
L(t+1)=b(1)*M-d(1)*L-k(L+M)*L-c1LN+L(t);
  M(t+1)=(b(2)-d(2))*M-k(L+M)*M-c(1)*M*N+M(t);


其中的k(L+M)是啥意思?
很莫名其妙
 楼主| 发表于 2008-5-7 16:48 | 显示全部楼层
确实有点不大合适。我正在修改。谢谢大家!L和M那个应该是L(t)和M(t)

类似的错误也有几处,我修改掉再看看

主要这个错误不止是这一个模型,我还试验了其他几个方程都是类似错误,才迫不得已求教的。

见谅

[ 本帖最后由 eight 于 2008-5-7 17:07 编辑 ]
发表于 2008-5-7 16:59 | 显示全部楼层

回复 5楼 的帖子

k和L和M之间的关系呢?
错误提示其实就是这个,把L和M当成k的index了
发表于 2008-5-7 17:14 | 显示全部楼层
程序中
1:da=0.001;
       Na=size(da);
         Na=Na(2);
这就规定了Na等于1,就不用循环了吧!
2:你已经定义了L,M,N是1*1000的行证,然后你后面的循环t=1:1000
      那到最后一步应该会超出索引吧
3:还有就是楼上的说得,不能把L,M的值当成INDEX,它们的初值本来就是小数不是整数。
不知道对不对。

[ 本帖最后由 eight 于 2008-5-7 18:23 编辑 ]
 楼主| 发表于 2008-5-7 17:55 | 显示全部楼层
L、M和K那个修改,然后运行可以出图了

L,M,N是1*1000的行证,然后后面的循环t=1:1000那个,没有报错。我是新手也不是很明白其中道理。。。

Na=size(da),这句其实我不是很懂的,我们老师还给过一个程序,直接设置的Na=200

无论如何,谢谢楼上的朋友们!
发表于 2008-5-7 18:29 | 显示全部楼层
原帖由 他的影子 于 2008-5-7 17:55 发表
L、M和K那个修改,然后运行可以出图了

L,M,N是1*1000的行证,然后后面的循环t=1:1000那个,没有报错。我是新手也不是很明白其中道理。。。

Na=size(da),这句其实我不是很懂的,我们老师还给过一个程序,直接 ...
不懂的地方自己多动手试试,没有人一上手就能掌握,都是摸索出来的,不断help、不断用小程序测试
 楼主| 发表于 2008-5-8 00:16 | 显示全部楼层
收到了。谢谢8大。。。

现在还在继续画图,机子速度被拖的不成样子了。但真的很谢谢大家。希望明天交稿后天答辩以及后面拿学位都能顺利~

再次谢谢大家!尤其是 wwbeyondww 兄,给了我很多提示,谢谢!

只可惜不能把感谢写在论文里。。。:@L
发表于 2008-5-8 11:36 | 显示全部楼层
原帖由 他的影子 于 2008-5-8 00:16 发表
收到了。谢谢8大。。。

现在还在继续画图,机子速度被拖的不成样子了。但真的很谢谢大家。希望明天交稿后天答辩以及后面拿学位都能顺利~

再次谢谢大家!尤其是 wwbeyondww 兄,给了我很多提示,谢谢!

只可 ...
感谢可以写在毕业论文的致谢中啊
发表于 2008-5-8 12:02 | 显示全部楼层
原帖由 eight 于 2008-5-8 11:36 发表
感谢可以写在毕业论文的致谢中啊


呵呵,致谢中是写振动论坛呢?还是写eight院长?或是其他?
发表于 2008-5-8 12:42 | 显示全部楼层

回复 12楼 的帖子

不错, 想法很好, 一针见血。:lol
发表于 2008-5-8 12:57 | 显示全部楼层
原帖由 ch_j1985 于 2008-5-8 12:02 发表
呵呵,致谢中是写振动论坛呢?还是写eight院长?或是其他?
当然是振动论坛啦
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-3 08:45 , Processed in 0.066101 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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