function [matrixB] = blurmatrix(matrixA,newDim) %matrixA是待缩小的矩阵,newDim是新矩阵的维度 ADim= min(size(matrixA)); %取最小的维度 matrixB = zeros(newDim); k=floor(ADim/newDim); %维度倍数 向下取整 for i = 1:newDim for j = 1:newDim % (k-1)是获取的A的子矩阵 对其平均处理 放入到 新的尺寸为newDim zzZ matrixB(i,j) = mean(mean(matrixA((k*i-k+1):k*i,(k*j-k+1):k*j))); end end
因为遇到较大的矩阵,计算机算力不够,需要进行进一步离散化处理(图片马赛克化),然后求解最优
原先数据 2913*2775 绘图如下
经过blurmatrix.m 输入zz ,100 输出100*100尺寸 B矩阵进行绘图
完成了降维
clc,clear all; zz=xlsread('区域高程数据.xlsx'); A=zz; B=blurmatrix(A,100); x0=1:1:100; y0=1:1:100; [xx,yy]=meshgrid(x0,y0); xx=xx'; yy=yy'; figure contourf(xx,yy,B,[0,3000,4000,4200])