shuitumu 发表于 2006-12-9 16:04

请教关于下标问题

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

xi=[ 1 2 3 4];
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)...  (*)
                +(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的正数.
谢谢!

kapuliyuehan 发表于 2006-12-9 16:38

b/a(xi(I)*xi(J)),a是函数吗?如果不是,那就漏掉了一个符号

shuitumu 发表于 2006-12-9 17:28

对哦,我不小心漏打了运算符号.竟然还一直都没有看出来,汗~
谢谢!

shuitumu 发表于 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 编辑 ]

xjzuo 发表于 2006-12-9 19:43

回复

不太喜欢这种提问方式(遮掩得太严实), 猜测都很难,何况找错误.

xjzuo 发表于 2006-12-9 23:32

找到了一个错误, 即:
%%% xi = [-1 1 1 -1];%%%语句,
和%%% xi = Coord(1,i); %%%以及%%%w11(I,J) = b/a*(xi(I)*xi(J))...%%%似乎存在混乱.

eight 发表于 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)...  (*)
   ...

自己仔细调试一下看看哪个数组的下标越界访问了
页: [1]
查看完整版本: 请教关于下标问题