2013-03-25 52 views
0

我正在使用matlab编写遥感目的的函数
用户将在程序中输入一个包含7个文件的文件夹,每个文件都是一个图像的带,其名称是:
“b1.dat”
“b2.dat”
“b3.dat”
“b4.dat”
“b5.dat”
“b6.dat”
“b7.dat”
例如,如果输入2作为它将搜索的函数的参数这是在访问后7个选项名称会显示b2.dat
你怎么建议我写的代码搜索字符串中的某个字符

+1

你可以举一个简短的例子程序吗? – 2013-03-25 20:38:51

+0

这个问题非常模糊。因为这是为什么不使用q ='2'; dir(['\ *'q'\ *。\ *'])? – bdecaf 2013-03-26 09:50:47

回答

1

您可以使用uigetfiles选择目录和dir得到的文件夹内容的列表。一旦你有清单,strfind会告诉你一个文件包含一个给定的数字。

或者,使用uigetdir:

dirName = uigetdir('C:\', 'select a directory'); 
contents = dir(dirName); 

for c = contents 
    name = c.name; 
    if strfind(name,'3') 
     fileToOpen = name{1}; 
    end 
end 
+0

它不会在我的版本的matlab中工作,是R2010a – sepideh 2013-03-26 07:11:31

+0

有趣。什么部分不起作用? – Molly 2013-03-26 14:26:21

+0

在此版本中,我们没有将uigetfiles作为函数,而是使用uigetdir – sepideh 2013-03-26 14:29:47

0

我所使用的代码的以下两行:
夹= uigetdir( 'd:\', '选择包含频带中的文件夹')
文件名= DIR(文件夹)
第一行如我所料返回到文件夹的路径:
夹=

d:\ RS \ 911130个TM频带
但秒ond line not。我有我的文件夹中的7个文件,它返回一个9X1结构
名=

9X1结构阵列领域:

日期
字节
ISDIR
datenum
例如的内容文件名(1,1)是:
enter image description here