作业帮 > 综合 > 作业

matlab 稀疏矩阵插值为题

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 13:21:13
matlab 稀疏矩阵插值为题
现有(10×10)矩阵
2300022000029
0000000000
00250000000
00000250000
25000000000
0000000000
0000000000
0002802500260
28000000000
3302600000025
如果用正常的二维插(interp2)方法,0的位置还是0,这不是我希望得到的结果.
能否仅利用矩阵中已有的数据点(非零点)进行插值,得到一个新的平滑非稀疏矩阵.
A = [23, 0, 0, 0, 22, 0, 0, 0, 0, 29; ...
0, 0, 0, 0, 0, 0, 0, 0, 0, 0; ...
0, 0, 25, 0, 0, 0, 0, 0, 0, 0; ...
0, 0, 0, 0, 0, 25, 0, 0, 0, 0; ...
25, 0, 0, 0, 0, 0, 0, 0, 0, 0; ...
0, 0, 0, 0, 0, 0, 0, 0, 0, 0; ...
0, 0, 0, 0, 0, 0, 0, 0, 0, 0; ...
0, 0, 0, 28, 0, 25, 0, 0, 26, 0; ...
28, 0, 0, 0, 0, 0, 0, 0, 0, 0; ...
33, 0, 26, 0, 0, 0, 0, 0, 0, 25];
[X,Y,Z]=find(A);
[x,y]=find(A==0);
z=griddata(X,Y,Z,x,y,'cubic');
n=length(x);
for i=1:n, A(x(i),y(i))=z(i); end