2013-05-14 39 views
0

我想使用matlab将形状文件转换为栅格网格。首先,我试图用Python来做,但是我遇到了一些困难,我的上级建议我使用MATLAB。我随机使用matlab,并且我赞成它。将形状文件转换为matlab中的栅格

我拥有的数据是一个带有一组点的坐标的ASCII文件,我想从它们中创建一个栅格网格。

我在想我可以读取数据,从数据创建一个大小为(xmin,ymin,xmax,ymax)的空矩阵。然后我应该根据相应点的坐标将z值分配给每个网格单元格。

网格大小应为0.5m。我已经复制了一部分数据供您考虑。我会很感激,如果有人帮助我找到这个应用程序的正确思路。

32511632.00 5402000.00 354.29 17.50 
32511632.50 5402000.00 354.29 17.50 
32511633.00 5402000.00 354.35 18.00 
32511633.50 5402000.00 354.52 15.75 
32511634.00 5402000.00 354.70 12.37 
32511634.50 5402000.00 354.61 10.62 
32511635.00 5402000.00 354.11 8.50 
32511635.50 5402000.00 353.43 9.50 
32511636.00 5402000.00 352.72 14.25 
32511636.50 5402000.00 352.22 17.62 

(第一列是X,第二个是Y,第三个是Z和在属性的最后一个)

回答

0
isize = floor((ymax - ymin)/0.5) + 1; 
jsize = floor((xmax - xmin)/0.5) + 1 
M=zeros(isize, jsize); 

然后,对于每个输入线路:

i = floor((y - ymin)/0.5) + 1; 
j = floor((x - xmin)/0.5) + 1; 
M(i, j) = z; 
+0

我认为M矩阵的大小有问题。因为该文件有大约569188列,这意味着相同数量的X,Y和Z值虽然M大小是(1620,742) – user2355306 2013-05-14 15:17:53

+0

请尝试阅读:http://www.mathworks.com.au/support/solutions /en/data/1-FA7L9M/index.html?solution=1-FA7L9M – Bull 2013-05-14 15:27:23

+0

尊敬的用户2151446:非常感谢您的指导。现在通过使用linearindexing来解决问题:) – user2355306 2013-05-15 09:27:52

相关问题