【问题标题】:Octave/GRASS GIS .mat import error: 'map_data' undefinedOctave/GRASS GIS .mat 导入错误:“map_data”未定义
【发布时间】:2014-05-17 13:19:35
【问题描述】:

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

错误:在 [...file] 中找不到“map_data”数组

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

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

错误是

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

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

错误在哪里?

非常感谢任何帮助。

【问题讨论】:

    标签: arrays matlab gis octave


    【解决方案1】:

    “错误”是,您的 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_*
    

    【讨论】:

    • 丹尼尔,非常感谢! map_data = ans 然后 save -mat4-binary result.mat map_data 成功了。缺少边缘/边界,因此只能导入非地理参考地图,但这没关系。我可以在 GIS 中找到解决方法。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 2023-02-15
    • 2019-05-25
    • 1970-01-01
    相关资源
    最近更新 更多