我已将计算机分发到许多平台,因此我不能使用完整路径,而是使用相对像$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?
答案 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()是一个有用的功能。