MATLAB中的错误:第一个输入subs必须包含正整数

时间:2015-10-08 14:30:10

标签: matlab

MATLAB中是否有从数字

中删除零的操作
150.0000  150.0000    0.0000
  143.0000  148.0000    0.0000
  152.0000  152.0000    0.0000
  152.0000  144.0000    0.0000
  146.0000  150.0000    0.0000
  149.0000  145.0000    0.0000
  148.0000  152.0000    0.0000
  152.0000  157.0000    0.0000
  157.0000  164.0000    0.0000
  160.0000  155.0000    0.0000
  154.0000  154.0000    0.0000

我问的原因是因为我想在名为accumarray的函数中使用它们并且我一直收到错误

First input SUBS must contain positive integer subscripts.

由于

更新:最终我想使用如下

[X] = round(x)
[Y] = round(y)
data = [X,Y,Z];
plotdata = accumarray(data(:,1:2),data(:,3));
surface(plotdata)
colorbar

1 个答案:

答案 0 :(得分:1)

[X] = round(x-min(x))+1;
[Y] = round(y-min(y))+1;
data = [X,Y,Z];
plotdata = accumarray(data(:,1:2),data(:,3));
surface(unique(x),unique(y),plotdata)
colorbar

min()将数组移动到矩阵的左上角,基本上删除了前导零行和列。 +1确保它不会以零结尾,这会在accumarray中出现错误。