声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1635|回复: 6

[编程技巧] 请教关于下标问题

[复制链接]
发表于 2006-12-9 16:04 | 显示全部楼层 |阅读模式

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

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

x
一个很基本的问题,但突然不明白错在哪里,请各位指点:

xi=[ 1 2 3 4];
eta=[1 2 3 4];
a=...
b=...

for I = 1:4
        for J = 1:4
            w11(I,J) = b/a(xi(I)*xi(J))*(1+eta(I)*eta(J)/3)...  (*)
                +(1-Pr)*a/2/b*eta(I)*eta(J)*(1+xi(I)*xi(J));
   ...        
        end
end

运行的时候它指着(*)这一行说:
??? Subscript indices must either be real positive integers or logicals.

我实在不清楚这样引用出了什么问题,下标都是1:4的正数.
谢谢!
回复
分享到:

使用道具 举报

发表于 2006-12-9 16:38 | 显示全部楼层
b/a(xi(I)*xi(J)),a是函数吗?如果不是,那就漏掉了一个符号
 楼主| 发表于 2006-12-9 17:28 | 显示全部楼层
对哦,我不小心漏打了运算符号.竟然还一直都没有看出来,汗~
谢谢!
 楼主| 发表于 2006-12-9 18:09 | 显示全部楼层
还是那个循环里面的问题:

for I = 1:4
        for J = 1:4
     w11(I,J) = b/a*(xi(I)*xi(J))*(1+eta(I)*eta(J)/3)...  (*)
                  +(1-Pr)*a/2/b*eta(I)*eta(J)*(1+xi(I)*xi(J)); 
                 ... 
        end
end

说(*)这一行:
??? Index exceeds matrix dimensions.

但是我前面定义的xi和eta都是1*4的数组,下标引用也是到4为止.请教这里会有什么问题?
谢谢!

[ 本帖最后由 shuitumu 于 2006-12-9 18:32 编辑 ]
发表于 2006-12-9 19:43 | 显示全部楼层

回复

不太喜欢这种提问方式(遮掩得太严实), 猜测都很难,何况找错误.
发表于 2006-12-9 23:32 | 显示全部楼层
找到了一个错误, 即:
%%% xi = [-1 1 1 -1];%%%语句,
和%%% xi = Coord(1,i); %%%以及%%%w11(I,J) = b/a*(xi(I)*xi(J))...%%%似乎存在混乱.
发表于 2007-1-13 19:07 | 显示全部楼层
原帖由 shuitumu 于 2006-12-9 16:04 发表
一个很基本的问题,但突然不明白错在哪里,请各位指点:

xi=;
eta=;
a=...
b=...

for I = 1:4
        for J = 1:4
            w11(I,J) = b/a(xi(I)*xi(J))*(1+eta(I)*eta(J)/3)...  (*)
   ...


自己仔细调试一下看看哪个数组的下标越界访问了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-10 04:34 , Processed in 0.058428 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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