Matlab提示无法读取topo60c文件、文件不存在报错的原因咨询
报错原因
- 版本迭代移除数据:
topo60c是R2022a及更早版本Mapping Toolbox自带的60弧分分辨率全球地形示例数据,R2022b及之后的Matlab版本官方已经移除了该内置数据集,替换为精度更高的topo30、ETOPO系列地形数据,即便是完整安装Mapping Toolbox也不会附带该文件,直接运行旧版示例的加载语句就会报文件不存在错误。 - 搜索路径未包含数据目录:如果使用的是R2022a及更早版本,问题出在Mapping Toolbox的地形数据存储目录没有被加入Matlab的全局搜索路径,Matlab执行加载命令时检索不到对应的
topo60c.mat文件。
解决方法
- 适配新版数据集修改代码:不需要找旧的
topo60c文件,直接把示例代码里的数据源替换为当前版本自带的地形数据即可正常运行,修改后的可运行代码如下:
load topo30 axesm hatano meshm(topo30,topo30R) zlimits = [min(topo30(:)) max(topo30(:))]; demcmap(zlimits) colorbar
- 旧版本修复搜索路径:R2022a及更早版本用户,在Matlab命令行依次执行以下两条命令,将地形数据目录加入搜索路径并永久保存,重启Matlab后即可正常加载
topo60c:
addpath(fullfile(matlabroot,'toolbox','map','mapdata')) savepath
- 兼容旧代码补装数据:如果必须使用
topo60c运行未修改的旧脚本,直接打开Matlab顶部菜单栏的附加功能资源管理器,搜索topo60c找到官方提供的兼容数据安装包,完成安装后无需修改代码即可正常调用。
内容的提问来源于stack exchange,提问作者Epsilon
相关产品推荐
相关产品推荐

