0

我目前遇到了这个错误的问题,在我添加这部分代码之前一切都很好

    a=squeeze(b(x1,y1,z1,:));
    a_min = min(a);
    a_max = max(a);
    if a_max == 0 continue, end;
    a = (a - a_min)/a_max;

添加后,出现问题并且开始弹出此错误。“a”是一个 156x1 矩阵,范围从负值到 2.2。“a”中的数字用于更改 HSV 颜色图的值部分中的数字。

b 是一个 4d 矩阵,其中最后一部分是时间值,x1,y1,z1 是一个点的 3d 坐标。

4

2 回答 2

1

都是正x1,y1整数?从错误来看,这是一个问题。负数不能用作 matlab/octave 中矩阵的索引。z1

您可以检查此代码是否有效

a=squeeze(b(abs(round(x1)),abs(round(y1)),abs(round(z1)),:));
a_min = min(a);
a_max = max(a);
if a_max == 0 continue, end;
a = (a - a_min)/a_max;

如果没有错误,则问题确实出在x1,y1,z1值上,您应该检查其余代码以查找错误。

于 2013-08-14T18:50:17.190 回答
1

您使用索引的唯一地方是b(x1,y1,z1,;)调用。

确保这些是整数值:即也许你只需要做

b(round(x1),round(y1),round(z1),:)

如果你的坐标是小数。

于 2013-08-14T18:53:31.503 回答