全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 悬赏大厅 求助成功区
1300 2
2014-04-11
悬赏 100 个论坛币 已解决
问题:在C盘film文件夹下有200个文件夹。每个文件夹的名字都是中文。每个文件夹下都有n个视屏文件。要输出excel,其中是每个文件夹的名字和其对应的视屏数。

我是这样写的:
a=0;
b=cell(1,200);
A=dir('C:\film\');
for i=1:200;
b{1,i}=A(i).name;
a(i)=length(dir('C:\film\A(i).name\*.flv));
end

xlswrite('name.xls',b)
xlswrite('number.xls',a)


求高手指导!!


最佳答案

flish_wang 查看完整内容

a=0; % 如果是为了考虑内存优化,用a=zeros(200,1); b=cell(1,200); %是否应该cell(200,1)好点?excel没记错的话按列排列的多点。 A=dir('C:\film\'); for i=1:200; %dir得到的目录中顺序为1的是本目录,2是上级目录,所以循环应从3到202. b{1,i}=A(i).name; % b{i}=A(i).name 即可。 a(i)=length(dir('C:\film\A(i).name\*.flv)); 合并两个字符串可用[str1 str2 ]这种形式。 end xlswrite('name.xls',b) % ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-4-11 14:12:30
a=0;  % 如果是为了考虑内存优化,用a=zeros(200,1);
b=cell(1,200);    %是否应该cell(200,1)好点?excel没记错的话按列排列的多点。
A=dir('C:\film\');
for i=1:200;         %dir得到的目录中顺序为1的是本目录,2是上级目录,所以循环应从3到202.
b{1,i}=A(i).name; % b{i}=A(i).name 即可。
a(i)=length(dir('C:\film\A(i).name\*.flv)); 合并两个字符串可用[str1 str2 ]这种形式。
end

xlswrite('name.xls',b)   %matlab提供的xlswrite真的很简略啊。。后续把两个excel变成一个就只能用手了
xlswrite('number.xls',a)

%%%%%%%%%%%%%%%%%%%改正后的程序,抛砖引玉,请高手指点。

a=zeros(200,1);
b=cell(200,1);
A=dir('C:\film\');
for i=3:length(A);
b{i}=A(i).name;
a(i)=length(dir(['c:\film\' b{i} '\*.flv']));
end

xlswrite('name.xls',b)
xlswrite('number.xls',a)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-4-12 12:22:06
flish_wang 发表于 2014-4-12 09:40
a=0;  % 如果是为了考虑内存优化,用a=zeros(200,1);
b=cell(1,200);    %是否应该cell(200,1)好点?excel ...
感谢!!!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群