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
答案 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
中出现错误。