mfoldername

版本2.0.0.0 (59.4 KB 丹尼尔·r·赫伯
创建一个路径,以便轻松地保存或加载结果,无论函数位于何处

592下载

更新2016年1月11日

查看许可协议

你是否曾经忘记更改工作目录而将.mat和.fig文件保存到错误的位置?

您是否希望将结果和数字保存到与创建它们的函数相同的目录中的特定文件夹中?
如果没有更改当前文件夹,加载数据时出现错误怎么办?

您是否经常在计算机之间移动文件并保存多次模拟的结果?

那么mfoldername就是适合你的函数!

这个函数mfoldername的名字来源于MATLAB函数mfilename。这个提交是模仿mfilename的功能。从他们的描述来看:“mfilename返回一个字符串,包含最近调用函数的文件名。当从文件内部调用时,它返回该文件的名称。这允许函数确定其名称,即使文件名已被更改。”

Mfoldername的不同之处在于,它返回一个有利于保存和加载数据的路径,同时仍然独立于函数的位置(可能还有它的名称)。它的编写是独立于操作系统的。它还有一个附加选项,可以向路径添加附加目录(如果目录不存在,则创建它)。请参阅提交的截图以获得图形表示。

*放置在你的函数或脚本的开始,轻松加载数据或添加所有的genpath子文件夹
*放置在函数或脚本的末尾,以便方便地保存数据或图形(参见下面的链接,一个结合了mfoldername和export_fig的例子)
http://www.danielherber.com/matlab.php?option=post_3

%-------------------------------------------------------------------
% mfoldername.m
创建一个路径,以方便地保存或加载您的结果,无论您的
%函数已定位
%--------------------------------------------------------------------------
% [path_name] = mfoldername(fun_path,extra_path)
fun_path:函数路径(可以是动态使用mfilename('fullpath')或
% static使用你当前路径中的函数名)
% extra_path:您要添加到路径中的附加目录,
%。'Saved_Data'这样你就可以把你的结果保存在一个文件夹里
%命名为'Saved_Data'在与你的函数相同的路径(类似
%正在从特定文件夹加载数据)
%--------------------------------------------------------------------------
两个一般的例子:
% 1。您希望当前函数或脚本路径位于新文件夹中
% -此函数的名称可以更改,但仍然可以正常工作
% -为您创建额外的文件夹,如果它还不存在

% path_name = mfoldername(mfilename('fullpath'),'Saved_Data');

% 2。您需要函数文件夹中的特定函数或脚本路径

% path_name = mfoldername('Test_mfoldername', ");

%--------------------------------------------------------------------------

相关材料:

1.文件名构造函数(fullfile, fileparts, filesep) -//www.tianjin-qmedu.com/help/matlab/file-name-construction.html
~它们用于创建路径
~感谢Jan指出这些!

2.mfilename -//www.tianjin-qmedu.com/help/matlab/ref/mfilename.html
~需要删除函数或脚本名称

3.这- - - - - -//www.tianjin-qmedu.com/help/matlab/ref/which.html
~需要知道函数名
~需要删除函数或脚本名称

4.列表名称当前文件夹不是完整路径-//www.tianjin-qmedu.com/matlabcentral/newsreader/view_thread/284853
讨论了许多问题
~不是针对当前文件,而是针对当前工作目录

最后,一个关于为什么需要这个函数的简短背景故事。我已经运行了许多独立的优化例程,在完成时,我需要将结果保存到一个.mat文件和一些图形。我不想用太多的图形和数据文件打乱函数的位置,所以我开始将这些项目保存在名为“Saved_Data”的函数文件夹中的一个文件夹中。这让我可以轻松地导航到结果,并支持批量删除许多运行,而不必避开函数位置内的必要函数。此外,我能够使用的计算资源在Windows和Linux机器上都有。因此,我经常将代码从一个移到另一个,然后运行它。这每次都需要一个新的路径,除非它被放在与以前完全相同的位置,并且仍然需要两个完整的路径(一个用于Windows,一个用于Linux)。我想通过创建这个函数来简化整个过程。后来,这个函数在加载与函数绑定的数据时也被证明是有用的。这允许代码和数据从PC机传递到PC机,仍然可以正常工作。

注意:这个提交最初被称为msavename(维护了对msavename的支持)万博1manbetx

引用作为

丹尼尔·r·赫伯(2022年)。mfoldername(//www.tianjin-qmedu.com/matlabcentral/fileexchange/40397-mfoldername), MATLAB中央文件交换。检索

MATLAB版本兼容性
使用R2012b创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中央找到宝藏,并发现社区可以如何帮助你!

开始狩猎!