我是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?
我不确定我的问题是否清楚,但我希望是清楚的,有人可以在这里帮助我。
提前谢谢你,彼得
发布于 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)
再次感谢!
https://stackoverflow.com/questions/23676397
复制相似问题