为什么我得到了错误的下标指标必须或者是真实的积极的整数或逻辑值。”?

913(30天)

接受的答案

MathWorks支万博1manbetx持团队
编辑: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可以改变这种情况。

登录置评。

更多的答案(2)

安东尼Pichot
安东尼Pichot 2015年11月19日
Iaredi萨比娜的评论应该是一个有效的答案。
它可能发生当你有一个变量命名现有的matlab函数,如最小或diff。matlab认为您正在使用的变量,而不是安装在内部的函数。
1评论
Stephen23
Stephen23 2015年11月19日
编辑:Stephen23 2015年11月19日
它是 已经 答案的一部分: “另一个常见原因是,一个变量覆盖函数名,从而跟踪功能。例如:……” ,然后给一个例子如何发生。

登录置评。


Torsten
Torsten 2018年2月5日
编辑:Torsten 2018年2月5日
你忘了一个乘法:
电脑(n) = pa-rho * - > * < -行(vc (n) va) + f * h *ρ/弗吉尼亚州(2 * d) * * abs (va);
最好的祝愿
Torsten。

类别

找到更多的在矩阵和数组帮助中心文件交换

标签

没有标签了。

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!