MATLAB调用自定义脚本函数问题:无法识别上级目录函数
解决MATLAB 2016a无法识别上级目录脚本函数的问题
这事儿我太熟了!你遇到的问题本质是MATLAB的搜索路径规则在搞鬼——MATLAB默认只会在当前工作目录和已经添加到它官方搜索路径里的文件夹找脚本/函数。你的x.m放在~/a,但当前工作目录是~/a/b,~/a既不是当前目录,也没被加入MATLAB的搜索路径,所以它自然找不到这个函数。
给你几个实用的解决办法,按需选就行:
临时添加路径(单次MATLAB会话有效)
直接在MATLAB命令行敲这条命令,把~/a加到搜索路径里:addpath('~/a')这样当下就能运行
x函数了,但关闭MATLAB后这个设置会消失,下次打开得重新加。永久添加路径(一劳永逸)
要是不想每次都手动操作,就把路径永久存进MATLAB的搜索列表:- 点击MATLAB顶部菜单栏的Set Path按钮(或者命令行输入
pathtool打开路径设置窗口) - 点击窗口里的Add Folder,选中
~/a文件夹 - 点Save保存,以后每次启动MATLAB,这个路径都会自动被加载。
- 点击MATLAB顶部菜单栏的Set Path按钮(或者命令行输入
临时切换工作目录(偶尔用用挺方便)
要是你只是偶尔跑一次这个脚本,也可以直接切到脚本所在的目录:cd('~/a')跑完脚本再切回原来的工作目录就行:
cd('~/a/b')
最后再提个小细节:如果你用的是Linux或macOS系统,要确保x.m的文件名和里面的函数名大小写完全一致——MATLAB在类Unix系统下是区分大小写的,这点Windows用户不用操心,但类Unix用户得注意哦。
内容的提问来源于stack exchange,提问作者Tanner Strunk
相关产品推荐
相关产品推荐

