backfire1986 发表于 2009-3-13 21:25

Subscript indices must either be real positive integers or logicals.

小弟刚学matlab,遇到一个棘手问题,如下:
>> a=
a =
   1   2   3   4
   2   3   4   5
   9   8   7   6
>> l1=logical()
l1 =
   1   1   1
>> l2=()
l2 =
   0   0   0   1
>> a(l1,l2)
??? Subscript indices must either be real positive integers or logicals.
这可是课本上的一个例题,怎么会这样呢?哪位高手可以帮帮忙/

ch_j1985 发表于 2009-3-14 00:12

是不是这个l2=logical()
这个例子应该怎么理解呢?

sigma665 发表于 2009-3-14 08:12

根据你的程序
a(l1,l2)就是a(1 1 1,0 0 0 1)

ydlcsu 发表于 2009-3-14 11:53

用matlab验证后发现,应该是l2=logical(),否则l2中含有0,但又不是logical型,无法用来做下标索引的。

backfire1986 发表于 2009-3-14 12:27

我修改了一下后,把 l2=()改成 l2=()再运行就不会出问题了,这是为什么呢?

ydlcsu 发表于 2009-3-14 15:36

回复 5楼 backfire1986 的帖子

你那里可以??? 那为什么我这边不行啊?我觉得应该是不可以才对,我matlab2007 a

backfire1986 发表于 2009-3-14 20:41

我晕!原来是输入错了。
页: [1]
查看完整版本: Subscript indices must either be real positive integers or logicals.