首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >表面形貌倍频程

表面形貌倍频程
EN

Stack Overflow用户
提问于 2014-05-15 19:03:30
回答 1查看 382关注 0票数 1

我是Octave的新手,我真的很纠结于我得到的一个Matlab脚本。我正在尝试让它在Octave中运行。该函数的定义如下

 function terrainParameter = calculateTerrainParameter(surfaceTopography,x2,x3,x4).

输入x2、x3、x4是清晰的。我遇到麻烦的是x1,表面的地形。脚本中的代码如下:

latitudeStart = surfaceTopography.xllcorner;
latitudeStep = surfaceTopography.cellsize;
latitudeStop = surfaceTopography.xllcorner + latitudeStep * (surfaceTopography.ncols - 1);

longitudeStart = surfaceTopography.yllcorner;
longitudeStep = - surfaceTopography.cellsize;
longitudeStop = surfaceTopography.yllcorner + latitudeStep * (surfaceTopography.nrows - 1);

[latitudeGrid longitudeGrid] = meshgrid(latitudeStart:latitudeStep:latitudeStop,longitudeStop:longitudeStep:longitudeStart);

altitudeGrid = surfaceTopography.data;

现在:输入"surfaceTopography“(=x1),应该是什么样子?我有一个弧形网格(DSM.arc)。我设法让Octave读取它--没有标题(DSM),-and构建了一个3D网格。但是当我运行脚本时,输出通常是

matrix cannot be indexed with .

当我尝试将"DSM“或"DSM.arc”作为"surfaceTopography“的输入时。或者网格(meshgrid)应该是surfaceTopography?

我不确定我的问题是否清楚,但我希望是清楚的,有人可以在这里帮助我。

提前谢谢你,彼得

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-16 10:49:15

问题解决:正如rayreng和carandraug建议的那样,我需要创建一个结构。我是通过我从终端运行的可执行文件(或者,作为Octave中的.m )来实现的:

    #! /usr/bin/octave -qf
    load DHM
    surfaceTopography.xllcorner = 944452;
    surfaceTopography.yllcorner = 6452389;
    surfaceTopography.cellsize = 1;
    surfaceTopography.nrows = 144;
    surfaceTopography.ncols = 144;
    surfaceTopography.data = DHM; 

    calculateTerrainParameter(surfaceTopography,30,20,7)

再次感谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23676397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档