Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-05-13, 11:50   #1
luckypany
初级会员
 
注册日期: 2009-05-13
帖子: 1
声望力: 0
luckypany 正向着好的方向发展
默认 有关提取文件夹中文件名时遇到的问题

我的目的是想通过对话框选择文件路径,然后把此路径文件夹下的数据文件的名字全部在列表框里显示出来,有朋友建议用DIR命令,刚才测试了一下,出现一些奇怪的现象,弄不明白是什么原因:

第一种情况:DIR命令里参数是用变量pathname,结果数据D的大小是0x1,而我在E:\data路径下是有4个数据文件的。下面是测试过程

>> [filename0,pathname]=uigetfile({'*.*'},'选择路径')
filename0 =
200305140951v

pathname =
E:\data\

>> D=dir('pathname')
D =
0x1 struct array with fields:
name
date
bytes
isdir

第二种情况:我把dir里的路径直接用E:\data\,结果D的大小是6x1,我观察了一下,前两个的D.name,一个是‘.’一个是‘..’,从第三个开始是我的数据文件名。

>> D=dir('E:\data\')
D =
6x1 struct array with fields:
name
date
bytes
isdir

因为我需要的是打开文件夹路径下的数据文件名,所以我接下来要把D结构中的D.name提取出来,我用循环来做:
D=dir('E:\data\')
sizeofD=size(D)
if( sizeofD(1)>2)
for i=1:sizeofD(1)-2
filename(i)=D(i+2).name
end
end

运行结果提示下面的错误:
??? Subscripted assignment dimension mismatch.

Error in ==> qixiang>pushbutton1_Callback at 90
filename(i)=D(i+2).name

Error in ==> gui_mainfcn at 75
feval(varargin{:});

Error in ==> qixiang at 42
gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback.

>>
看起来是filename(i)=D(i+2).name这里数据不匹配,
我不明白错在哪里,请高手指教以上遇到的几个问题。谢谢!
luckypany 当前离线   回复时引用此帖
旧 2009-05-13, 12:41   #2
yhcode
高级会员
 
注册日期: 2008-05-13
年龄: 44
帖子: 232
声望力: 21
yhcode 正向着好的方向发展
默认 回复: 有关提取文件夹中文件名时遇到的问题

你可以尝试下fopen(fullfile(pathname,filename,...))
其中pathname 和filename由uigetfile得到
__________________
工科'985'博士,(图像处理、分析及理解;模式识别;运动估计;数据分析等)定做程序、算法实现--qq:752105755
yhcode 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 11:22


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.