matlab批量读取一个文件夹下的所有txt文件,并将这些txt文件里面的内容都写到一个txt文件当中来。

我在E:/1951-1965这个文件夹下面有180个txt文件,我现在想把这180个txt文件的内容批量读取进matlab,然后输出成一个txt文件。这些文件名是有规律的,按照时间来排列的。本人新手,鼓捣了好久没搞出来,望前辈指点。

没必要用matlab批处理就可以搞定
在那个文件夹下新建一个文本文档输入:

type *.txt>>all.txt

保存为.bat文件,然后运行就可以了。追问

大神,你的这个方法很好,可否再请教一个问题?
我把所有的数据读入一个all.txt中之后,我想把这整个的txt文件按照某一项的升序排列,然后再把升序的这一列的每一个数值所对应的内容输出为txt,升序一共有多少数值,就生成多少txt。。。。。也就是和一开始合并为all.txt之前的文档换一种排列方式

追答

有一个比较简单的办法,就是用excl把all.txt导入表中,然后用excl排序后导出
可以再原始数据类型中采用‘’分隔符号“,然后选空格。以便于你可以吧你需要的内容分离成单独一列

追问

这个方法我已经试过了,但是all.txt文件比较大,excel最多可以读入104w行,不够啊

追答

我不太明白你说的 “把升序的这一列的每一个数值所对应的内容输出为txt,升序一共有多少数值,就生成多少txt” 难道要生成几百万个txt文件?

追问

合并前有720个txt,文件名是按照时间排序的,从1951.1-2010.12月,一个月一个txt。用excel打开每一个txt,如图,A列表示是站点号,有50527、50557等,这个txt是用时间来排序的。。。我现在想把他们重新排序,以站点号来排序,比如50527是一个站点,我想把属于这个站点的所有年份的数据放到一起,输出成一个txt,有多少站点,就输出多少txt

追答

@echo off
setlocal enabledelayedexpansion
set /p length="输入站名的长度"
set /p datatxt="输入待处理的文件名"
set /p seltxt="输入分类名"
for /F %%i IN (%seltxt%) do (

for /F "delims=" %%j IN (%datatxt%) do (
set str1=%%j
if "!str1:~0,%length%!"=="%%i" echo %%j>>%%i.txt

)

)
echo OK
pause>>nul

同样批处理

追问

大哥,能留个qq不,排序没成功,求指教,

追答

你把你的号留下吧。我加你

温馨提示:答案为网友推荐,仅供参考