登录论坛

查看完整版本 : [MATLAB图像处理] 求高手帮看下~高程数据导入矩阵的问题出在哪里


249813140
2009-04-20, 01:33
用的是GTOPO30的高程数据,每1弧度距离采样120次,m文件就是这样了
fullfile(matlabroot,'E:\MATLAB7\work');
file1 = 'E060N90.DEM';%指定数字高程文件
[map1,maplegend] = GTOPO30(file1,2,[40 50],[70 100]); %文件名,采样系数,纬度范围,经度范围
fullfile(matlabroot,'E:\MATLAB7\work');
file2 = 'E100N90.DEM';
[map2,maplegend] = GTOPO30(file2,2,[40 50],[100 140]);
fullfile(matlabroot,'E:\MATLAB7\work');
file3 = 'E060N40.DEM';
[map3,maplegend] = GTOPO30(file3,2,[15 40,[70 100]]);
fullfile(matlabroot,'E:\MATLAB7\work');
file4 = 'E100N40.DEM';
[map4,maplegend] = GTOPO30(file4,2,[15 40],[100 140]);%4个截取的矩阵合起来就是“中国”E70~E140,N50~N15
high = [map1,map2;map3,map4];
到最后一步合并的时候问题就来了,报告说“矩阵列数不对,加不了”
看了一下四个map矩阵分别是[600x1800],[600x2400],[1501x2400],[1501x2400]
不知道为什么会这样,上面明明限定了E70~E100,算下来应该是30°x60=1800
怀疑过map2的数据的影响,分开执行过,中间也清空过workspace,结果还是这样的,mat文件还是没有办法叠加。

2关于矩阵分类运算,还是问实际一点吧
比如上面的那个high[1000x1000]矩阵出来了,怎样才能将里面的里面的数小于400的筛选出来
生成一个新的[1000x1000]矩阵,小于400的就保持原值,大于400的就置0

本来是考虑用if&eles,一个一个的判断,看到有帖子说要多用矩阵,不要老是C语言的思维。
想了许久还是一筹莫展

249813140
2009-04-20, 11:35
顺便发一下那四个高程数据
E060N90:http://edc.usgs.gov/products/elevation/gtopo30/e060n90.html
E100N90:http://edc.usgs.gov/products/elevation/gtopo30/e100n90.html
E060N40:http://edc.usgs.gov/products/elevation/gtopo30/e100n40.html
E100N40:http://edc.usgs.gov/products/elevation/gtopo30/e060n40.html

下下来是tar.gz的压缩包,winrar就可以解压了。
每个包里面是8个文件,matlab在导入.DEM文件的时候 还要手动指定相应的.HDR文件