【发布时间】:2016-06-16 09:45:34
【问题描述】:
我不是一个非常频繁的 Matlab 用户。所以今天,当我收到"Subscript indices must either be real positive integers or logicals." 的消息时,我很想知道。如果我这样做会发生什么
x = [1 2 3];
x(true)
x(false)
我的猜测是 false 被视为 0 而 true 被视为 1,因此 x(true) 应该返回第一个元素,它确实返回了,而 x(false) 应该返回一个错误。它没有。 x(false) 显然返回一个空数组。为什么?
我找不到关于这种相当奇怪的行为的任何参考资料,这就是我在这里问的原因,对不起,如果它是重复的或我应该知道的一些正常行为。
【问题讨论】:
-
Matlab 是解释型语言,如果它把 true 当作 1,false 当作 0,我不会感到惊讶。你试过吗?请记住,matlab 数组从 1 开始(而不是在 C 中从 0 开始)
-
不是这样的。我找到了答案,我会发布它。
-
@LuisMendo 对here 进行了非常精彩的问答,内容涉及 MATLAB 中所有可能的索引方式
标签: matlab