用matlab对文件进行批处理

一个文件夹下有500个文本文件,且文件名不规则,这500个文本文件均为一列数据,现在要把每个文本文件中的数据都加1,然后再以与原来相同的文件名保存,应该怎么写批处理的代码... 一个文件夹下有500个文本文件,且文件名不规则,这500个文本文件均为一列数据,现在要把每个文本文件中的数据都加1,然后再以与原来相同的文件名保存,应该怎么写批处理的代码呢?主要不会用原来的文件名批量保存,麻烦写的详细些~~~~ 展开
 我来答
冲浪网站优化
高粉答主

推荐于2018-04-13 · SEO资深专家,互联网知名专家。
冲浪网站优化
采纳数:10812 获赞数:90553

向TA提问 私信TA
展开全部

方法一、

点开屏幕上方菜单“试图”,选“工具栏”,弹出窗口后在你想要现实的工具条名字前面点一下打上对钩,工具条就出现了。

方法二、

1、单击顶层工具栏里的“工具”,接着点击最后的“选项”。在选项栏进去之后的页面选择倒数第二个“配置”。

2、左边的白框里有多种选择,不用管它的存在。直接点击“重置”,然后点击“确定”就可以了。

伤倏臀w
2010-05-12 · TA获得超过1115个赞
知道大有可为答主
回答量:864
采纳率:60%
帮助的人:606万
展开全部
%该程序实现了数据文件的批处理,并将处理后的文件以CL_name存储在相同文件夹中。
%对数据的处理为:每隔k步提取一组数据,将提取的数据写入文件存储
%
%2007.4.6 wangbo E-mail:wboboer@163.com
%-------------------------------------------------------------------------%

clear
%提取间隔
k=4;
%导入原始数据
cd('D:\Program Files\MATLAB\R2006a\new');%待处理的数据文件所在文件夹
Allname=struct2cell(dir); %得到上述文件夹下的所有文件名
%dir命令,可以得到路径内包括文件名在内的文件信息,为struc数据结构。
%-------------------------------------------------------------------------%
%逐个读入文件
[m,n]=size(Allname);

for i=3:n%前两个不是文件名
name=Allname{1,i};
Imdata=importdata(name);
%-------------------------------------------------------------------------%
Bdata=Imdata.data;
textdata=Imdata.textdata;
colheaders=Imdata.colheaders;
clear Imdata
%简化变量名
%-------------------------------------------------------------------------%
%数据提取
B_tiqu=Bdata([1:k:end],;

%-------------------------------------------------------------------------%
%数据输出
t1=cell2mat(textdata(1,1));
t2=cell2mat(textdata(2,1));
c=cell2mat(colheaders(1,);

%保存文件重命名为CL_name
qianzhui='CL_';
name=[qianzhui,name];

%数据写入
%表头文字部分
f=fopen(name,'wt','n','ASCII');%创建并打开文件
fprintf(f,t1);
fprintf(f,'\n');
fprintf(f,t2);
fprintf(f,'\n');
fprintf(f,c);
fprintf(f,'\n');
clear t1 t2 c qianzhui name
%数据部分
M=length(B_tiqu);
for i=1:M
fprintf(f,'%d %d %d %d',B_tiqu(i,);%输出格式类似C语言,可自己调整
fprintf(f,'\n');
end%for i=1:M
fclose(f);%关闭文件

end %for i=3:n

参考资料: http://bbs.sciencenet.cn/showtopic.aspx?topicid=18215&forumpage=1&onlyauthor=1

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
超越希望
2010-05-15 · TA获得超过121个赞
知道答主
回答量:103
采纳率:0%
帮助的人:49.7万
展开全部
把.mat文件放到一起
先ctrl+a再按F2

命名为XX(i).mat
for i=1:100

load strcat('XX(',num2str(i),').mat'');

end

%strcat是全并string
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wacs5
推荐于2016-09-15 · TA获得超过1.6万个赞
知道大有可为答主
回答量:3724
采纳率:82%
帮助的人:2801万
展开全部
思路两种方案:
一种,写到临时文件,再覆盖回来。
二种,以读写方式打开。

二十分钟后再来取吧。
第二种方案:
dirpath=uigetdir;
filestruct=dir(dirpath);
Nfile=length(filestruct);

for i=1:Nfile
if strcmp(filestruct(i).name,'.') || strcmp(filestruct(i).name,'..')
continue;
end
fp=fopen([dirpath,'\',filestruct(i).name],'r+');
data=fscanf(fp,'%f')
data=data+1;
frewind(fp);
fprintf(fp,'%f\r\n',data);
fclose(fp);
end

不过输出数据的形式改成浮点型,即使以前是1,这里会变成2.0000
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
余明煦3o
2010-05-12 · TA获得超过439个赞
知道小有建树答主
回答量:1389
采纳率:0%
帮助的人:750万
展开全部
@echo off
for /f "tokens=* delims=" %%i in ('dir /a-d /b *.txt') do (
for /f "tokens=* delims=" %%a in (%%~nxi) do (
set /a n=%%a+1
echo %n%>>tempxx.bak
)
del %%~nxi
ren tempxx.bak %%~nxi
)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式