unix
我编写了一个 MATLAB 程序,它可以动态创建自定义 MATLAB 函数并使用命令在其他 MATLAB 实例中启动它们。我使用这个程序来自动化 fMRI 神经成像分析(使用 SPM8 for MATLAB),一切正常。但是,MATLAB 规定函数名称的最大长度为 63 个字符 ( namelengthmax
)。因为我需要在每个函数名称中保存两个不同的时间戳以及创建它的函数的名称(我有几个不同的函数来创建这些用于多线程 fMRI 分析的新函数),所以 63 个字符对于像这样的文件名是非常有限的:
atf_2012_07_05_18_01_02_specify_1st_level_2012_07_05_18_10_15.m
在此示例atf
中表示“分析线程函数”(将其与具有相似文件名的其他文件分开),第一个时间戳标识运行(全局时间戳,本例为 2012 年 7 月 5 日 18:01:02),然后有一个specify_1st_level
标识创建此新“分析线程函数”的函数(在本例中)的字符串,specify_1st_level.m
然后第二个时间戳从创建以在其他线程中运行的其他新“分析线程函数”中标识此特定的新“分析线程函数” (以及针对不同的分析主题,或针对不同的分析)并且同时运行。
我的问题是函数名称的字符数限制为 63 个字符。
我知道我可以编写不带下划线 ( _
) 的时间戳,或者压缩它们,我可以缩短我的函数名称(例如specify_1st_level.m
-> sp1st.m
),我还可以将动态创建的函数划分在不同的子文件夹中也创建即时命名例如。带有全局时间戳。编辑:或者我什至可以创建整个函数名称的散列,并将散列用作函数名称,而不是上面显示的人类可读字符串。
但是,我计划在“分析线程函数”的名称中添加更多数据(本次运行中使用的不同分析参数集的一个或多个哈希值,以识别不同时间的相同分析)。如果可能的话,我想让它保持简洁(人类可读的函数名称有助于调试动态创建的“分析线程函数”)。
那么,有什么办法可以延长 namelengthmax
吗?我在 Linux 中运行 MATLAB R2012a。我也很高兴听到任何其他解决此问题的方法。