Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Matlab中设置不受“clear”等命令影响的启动变量的最佳方法是什么?_Matlab_Environment Variables_Startup - Fatal编程技术网

在Matlab中设置不受“clear”等命令影响的启动变量的最佳方法是什么?

在Matlab中设置不受“clear”等命令影响的启动变量的最佳方法是什么?,matlab,environment-variables,startup,Matlab,Environment Variables,Startup,在这种情况下,Matlab程序输出的大量数据需要存储在一个特定的位置,该位置可能因机器而异。我想要的是一个全局变量,它在每台机器启动时设置。然后,各种程序可以使用该变量来确定存储输出的目录注意该方法需要独立于平台,因为可能有3个操作系统将运行这些脚本 我考虑的一种方法是使用setenv: setenv('DATDIR',fullfile(path,to,dir)); 然后,脚本/函数可以使用以下命令查询此变量: savedir = getenv('DATDIR'); 在这种情况下,变量不受M

在这种情况下,Matlab程序输出的大量数据需要存储在一个特定的位置,该位置可能因机器而异。我想要的是一个全局变量,它在每台机器启动时设置。然后,各种程序可以使用该变量来确定存储输出的目录注意该方法需要独立于平台,因为可能有3个操作系统将运行这些脚本

我考虑的一种方法是使用
setenv

setenv('DATDIR',fullfile(path,to,dir));
然后,脚本/函数可以使用以下命令查询此变量:

savedir = getenv('DATDIR');
在这种情况下,变量不受Matlab环境中
clear
的影响

我想使用的另一种方法是简单地创建一个函数(如
matlabroot
),该函数位于路径上,并简单地返回一个字符串,数据目录路径分配给该字符串

function path = datroot()
    path = fullfile(path,to,dir);
end
最后,我的问题是:还有其他方法可以达到同样的效果吗?如果Matlab有自己的环境变量,我宁愿使用这些变量,而不是函数或系统级变量。这可能吗?

使用///组函数。根据文件:

首选项值是持久的,并将其值保持在 MATLAB课程。它们的存储位置取决于系统

这类似于
.ini
或Java
.properties
文件,而是使用MAT文件来保存值(可以是任何MATLAB类型)。在我的Windows计算机上,使用的文件存储为:

%APPDATA%\MathWorks\MATLAB\R2010b\matlabprefs.mat
使用///函数集。根据文件:

首选项值是持久的,并将其值保持在 MATLAB课程。它们的存储位置取决于系统

这类似于
.ini
或Java
.properties
文件,而是使用MAT文件来保存值(可以是任何MATLAB类型)。在我的Windows计算机上,使用的文件存储为:

%APPDATA%\MathWorks\MATLAB\R2010b\matlabprefs.mat

谢谢你的回答
addpref
getpref
正好符合要求。感谢您的回答
addpref
getpref
精确匹配账单。