2011-11-23 43 views
0

在一个文件夹中,我有我的.m文件包含脚本和一个成像.dcm文件,这是我的分析目标。有没有获得文件名并插入Matlab脚本的方法?

文件夹结构:

Folder1/analysis.m 
Folder1/meas_dynamic_123.dcm 
Folder1/meas_123.dcm 
Folder1/meas_345.dcm 

我的脚本(analysis.m)开始如下:

target  =''; <== here should go only the filename that contains 'dynamic' 
        example: meas_dynamic_123.dcm 

txt  = dir(target); 

// etc 

所以我不知道是否有正在运行analysis.m它会当的方法:

  • 自动搜索它所在的文件夹,

  • 抢包含字符串dynamic在名称文件的文件名,

  • 插入其名称target变量

  • 继续运行该脚本

有没有人对如何任何指针为了达成这个?使用ffpath

回答

1

你应该做的:

f=dir('*dynamic*'); 
target=f(1).name; 
+0

这工作在命令行上,但是当我把它放在脚本中时,我得到一个错误'功能没有被定义为'结构'inputs.' – pepe

+0

现在,它是否适用于新的编辑? – Oli

+0

这是因为你只需要从'dir'返回的结构中提取文件名。尝试'txt = dir('* dynamic *');''txt = {txt.name};' – Doresoom

1

假设你是不是在Folder1,你需要找到它:

script_name = 'analysis'; 
script_full_path = which(script_name);  % get full path of the script 
script_dir = fileparts(script_full_path); % get the directory of the script 
file_list = dir([script_dir '/*dynamic*']); 
name_list = {file_list.name}; 

name_list它将是包含关键字的文件名“动态单元阵列”。

+0

thx将保持完整路径,但现在使用更简单的方法@ OLI – pepe

0

而不是which(scriptname),考虑使用mfilename('fullpath'),这将直接为您提供正在运行的m文件的完整路径。如果在路径上有多个相同名称的命令,则使用which可能会中断。

相关问题