为什么我得到了错误的下标指标必须或者是真实的积极的整数或逻辑值。”?
913(30天)
显示旧的评论
MathWorks支万博1manbetx持团队
2013年5月7日
编辑:
MathWorks支万博1manbetx持团队
2021年2月17日
为什么我得到以下错误信息:
错误:下标索引必须是真正的正整数或逻辑值。
接受的答案
MathWorks支万博1manbetx持团队
2021年2月17日
编辑:MathWorks支万博1manbetx持团队
2021年2月17日
这个错误发生在您试图索引数组使用指数不是正整数或逻辑值。这里有一些小贴士常见情况下导致这个错误消息:
1)仔细检查你的指数是正整数。指数在MATLAB不能是0,默认情况下,从1开始。
2)如果您使用的是逻辑索引数组索引,确保索引数组类型的“逻辑”,而不是“双重”一系列的1和0。你可以“双重”数组转换为逻辑阵列在试图使用逻辑索引。例如:
= (1 2 3 4;5 6 7 8];
ind_double = [0 1 0 1;0 0 1);
ind_logical =逻辑(ind_double);
(ind_logical)
索引数组的印第安纳州,你可以检查它的数据类型使用“谁”功能:
谁印第安纳州
3)如果您使用浮点算术计算索引数组,数组值可能不是精确的整数。“圆”的功能是方便当你知道你有一个索引值几乎是你想要的整数索引。例如,
= (1 2 3 4;5 6 7 8];
ind_float = 2.00001;
ind_int =圆(ind_float);
(ind_float)
下面是一种检查如果索引数组的印第安纳州”包含准确的整数值。这个命令返回一个“逻辑”数组,1表示是一个精确的整数索引值,0表示没有。
印第安纳州= =圆(印第安纳州)
4)如果你分配一个变量名称相同的MATLAB的内置函数,然后将覆盖函数和遇到的错误,当你试图调用它。例如,
max =兰德(5);
一个=兰德(5);
max ()
在这种情况下,重命名变量和清晰的旧的继续:
B = max;
清晰的马克斯·马克斯(A)
在MATLAB索引的更多信息,参见下面的文档页面:
2的评论
沃尔特·罗伯森
2018年9月25日
“这已经改变了Matlab在最近的一次更新?(我更新从2013年到2017年)。在那之前我从来没有将双重逻辑。”
R2013a:
> > =兰德(1、3),一个((1 0 0))
一个=
0.8147 0.9058 0.1270
下标指标必须是真正的正整数或逻辑值。
R2010bSP1也一样,这是最古老的MATLAB我碰巧已经安装了。
如果我们检查R14文档,
//www.tianjin-qmedu.com/help/releases/R14/techdoc/matlab.html
在文档中“特殊字符[](){}= '……,;:% !@“我们看到,
“V的组件必须是整数作为下标。出现错误,如果任何此类下标小于1或大于x的大小”
这不是一个新的限制,不,没有设置MATLAB可以改变这种情况。