【发布时间】:2017-06-17 18:02:11
【问题描述】:
以下脚本给了我错误“下标索引必须是正整数或逻辑数。”
我不明白为什么,因为变量是整数。此外,我还将它们转换为整数。
代码是:
x_start = int16(x-matrixRay);
x_end = uint16(x+matrixRay);
y_start = uint16(y-matrixRay);
y_end = uint16(y+matrixRay);
matrix = img(x_start:x_end,y_start:y_end);
我在上面的代码之前放置了一个断点。下面我列出了变量的值:
K>> x_start
x_start =
uint16
298
K>> x_end
x_end =
uint16
302
K>> y_start
y_start =
uint16
88
K>> y_end
y_end =
uint16
92
K>> matrixRay
matrixRay =
2
显然我不能发布所有矩阵“img”,因为它非常大。工作区是 1369x1173 uint8。
【问题讨论】:
-
你为什么使用int8函数?
-
int8太小而无法包含这些值。你溢出来了。 -
这是一个错误。使用 uint16 我仍然有同样的错误。我更新了代码和变量值。您可以在上面检查它们。还有什么想法吗?谢谢
-
请发帖minimal reproducible example。我看不出您提供给我们的数据是如何导致该错误的。
标签: matlab indexing casting integer