MacOS Ventura下MATLAB配置dynare++路径,无需重复放置可执行文件
解决MATLAB中dynare++的路径配置问题
问题概述
在MacOS Ventura系统的MATLAB中使用dynare时,尽管通过addpath或MATLAB图形化路径设置添加了dynare所在目录,但执行!dynare++命令仍提示/bin/bash: dynare++: command not found。查看shell环境变量!echo $PATH发现仅包含系统默认路径,未包含dynare++的存放目录,只有指定相对路径(如dpp/dynare++)时才能正常运行。
解决方案
1. 临时配置当前MATLAB会话的shell PATH
在MATLAB命令行执行以下命令,将dynare++所在目录追加到shell的PATH中:
!export PATH="$PATH:~/Documents/MATLAB/dynare/5.3/dynare++"
该配置仅对当前MATLAB会话生效,重启后需要重新执行。
2. 永久配置MATLAB的shell PATH
通过startup.m文件实现每次启动MATLAB自动配置:
- 执行
userpath命令获取MATLAB用户配置目录(通常为~/Documents/MATLAB)。 - 在该目录下创建或编辑
startup.m,添加以下代码:
% 配置dynare++的shell环境路径 dynarepp_dir = fullfile(getenv('HOME'), 'Documents/MATLAB/dynare/5.3/dynare++'); setenv('PATH', [getenv('PATH') ':' dynarepp_dir]);
- 保存文件并重启MATLAB,此后每次启动都会自动将dynare++目录加入shell PATH,可直接执行
!dynare++命令。
3. 使用绝对路径直接调用
无需修改PATH,直接用绝对路径执行命令:
!~/Documents/MATLAB/dynare/5.3/dynare++/dynare++ --per 15 --sim 3 --ss-tol 1e-10 MyModFile.mod
也可将路径定义为变量简化重复调用:
dynarepp_exe = fullfile(getenv('HOME'), 'Documents/MATLAB/dynare/5.3/dynare++/dynare++'); system([dynarepp_exe ' --per 15 --sim 3 --ss-tol 1e-10 MyModFile.mod']);
关键提示
- MATLAB的
addpath仅用于添加MATLAB函数/脚本的搜索路径,不会修改系统shell的PATH环境变量,因此无法解决外部可执行文件的调用问题。 - 执行
!前缀的命令时,MATLAB调用的是系统shell,此时依赖的是shell的PATH,而非MATLAB自身的路径列表。
内容的提问来源于stack exchange,提问作者R__
相关产品推荐
相关产品推荐

