Octave / GRASS GIS .mat导入错误:'map_data'undefined

时间:2014-05-17 13:19:36

标签: arrays matlab gis octave

我有一个Matlab脚本,可以根据数字地形模型计算某个地形参数(描述风的理论遮挡和风暴)。该脚本在Matlab和Octave中都有效,并产生一个矩阵。 现在:我正在尝试将其与GRASS GIS shell脚本相结合。我可以从GRASS调用脚本,但是我在将输出恢复到GRASS时遇到了问题。一种方法是使用.mat格式。但问题是:当我导出计算结果(使用save -mat4-binary result.mat ans)并尝试将.mat文件导入GRASS时,错误是:

  

错误:在[...文件]中找不到'map_data'数组

同样,当我在Octave中加载文件并尝试显示它时

load result.mat 
imagesc(map_data), axis equal, axis tight, colorbar

错误是

  

错误:`map_data'未定义在第19行第9列附近       错误:评估参数列表元素编号1

当我从Matlab导出时,它也是同样的问题。

错误在哪里?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

" bug"是的,你的mat文件不包含任何名为" map_data"的变量,我猜你的mat文件中的变量名为" ans"。我会使用res=load result.mat,然后你得到一个包含mat文件中所有内容的结构。如果输入res.自动完成,则应列出结构内的所有变量(不确定是否为八度),或者使用fieldnames(res)列出所有变量名称。

/更新:

我简要介绍了草的文档。它期望预定义的变量名称,都以map_ *开头。而不是

save -mat4-binary result.mat ans

您应该重命名变量以匹配文档并使用

保存它们
save -mat4-binary result.mat map_*