我有一个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导出时,它也是同样的问题。
错误在哪里?
非常感谢任何帮助。
答案 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_*