Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-04-15
年龄: 38
帖子: 2
声望力: 0 ![]() |
![]()
用的是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语言的思维。 想了许久还是一筹莫展 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-04-15
年龄: 38
帖子: 2
声望力: 0 ![]() |
![]()
顺便发一下那四个高程数据
E060N90:http://edc.usgs.gov/products/elevati...0/e060n90.html E100N90:http://edc.usgs.gov/products/elevati...0/e100n90.html E060N40:http://edc.usgs.gov/products/elevati...0/e100n40.html E100N40:http://edc.usgs.gov/products/elevati...0/e060n40.html 下下来是tar.gz的压缩包,winrar就可以解压了。 每个包里面是8个文件,matlab在导入.DEM文件的时候 还要手动指定相应的.HDR文件 |
![]() |
![]() |