Index in position 1 is invalid. Array indices must be positive integers or logical values.
4 次查看(过去 30 天)
显示 更早的评论
I have :
c(i,2) = 272.0000
c(i,1) = 42.0000
and L(272.0000,42.0000) gives 2
but when I do
L( c(i,2), c(i,1) )
(L is a 697x103 double)
I got
Index in position 1 is invalid. Array indices must be positive integers or logical values.
0 个评论
采纳的回答
Dyuman Joshi
2023-2-10
编辑:Dyuman Joshi
2023-2-10
The error occurs because your data is not exactly an integer even though it might look like it.
%Data displayed in the default format i.e. short format
y = 1.0000123
Type
format long
in your code and see the value of the the elements.
y
Use round(), floor() or ceil() according to what you want to do.
L( round(c(i,2)), round(c(i,1)))
更多回答(1 个)
Mathieu NOE
2023-2-10
hello
depending of your format, the command window will display more or less decimals
I suspect
c(i,2) = 272.0000...............123
c(i,1) = 42.0000...............789
are not 100% integer so you have to round them to the nearest integer to make your code work
L( round(c(i,2)), round(c(i,1)) ) should now display the correct value
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!