如何在Matlab的save / saveas中拥有$ HOME?

时间:2016-03-09 09:35:28

标签: matlab save

我已将计算机分发到许多平台,因此我不能使用完整路径,而是使用相对像$HOME。 代码

filename=strcat('$HOME/Images/',num2str(item);
save(strcat(filename,'.mat'),'masi');
saveas(her, strcat(filename,'.png'));

输出

Error using save
Cannot create '777.mat' because '$HOME/Images' does not exist.

Error in masiCool (line 98)
    save(strcat(filename,'.mat'),'masi');

向后闪光\$HOME也不起作用。

如何在Matlab的save / saveas中拥有$ HOME?

2 个答案:

答案 0 :(得分:1)

MATLAB不会自动解析环境变量(例如homedir = getenv('HOME'); )。通常,如果您需要环境变量的值,则可以使用getenv.

~

或者,在* nix上, 实际上只需使用代字号(folder = '~/Images'; )来表示文件路径中用户的主目录。

homedir = char(java.lang.System.getProperty('user.home'));

但是,我通常只依靠Java来获取用户主目录,因为它可以在任何平台上正常运行。

filename = fullfile(homedir, 'Images', sprintf('%d.mat', item))

然后,使用fullfile将您想要的路径连接到用户的主目录。

getenv
  

注意:如果您想在HPC或某些未使用JVM的MATLAB实例上执行此操作。 HOMEPATH选项最好。在Windows上,您需要HOME变量而不是.SelectMany(...)

答案 1 :(得分:-1)

尝试完整路径而不是使用$ HOME。 $ HOME是一个系统命令,在Matlab中无法识别。

使用\ home \ YOUR_USER_NAME代替$ HOME。

提示:如果您必须在Matlab中使用系统命令,system()是一个有用的功能。