24小时热门版块排行榜    

查看: 989  |  回复: 9
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

keaSSy

至尊木虫 (著名写手)

[求助] MATLAB读写TXT文件数据求助 已有2人参与

本人MATLAB小白,但在用到一些txt文本数据的时候,需要将数据从一个txt文件(名叫“origin_date.txt”)以特定方式重新写入另一个txt文件(就叫“processed_date.txt”吧)中,想请论坛中熟悉MATLAB的大神请教,以提高效率。
原始数据形式如下:
TEMP*                  1                 1  12.1
TEMP*                  1                 2  12.2
TEMP*                  1                 3  12.3
TEMP*                  1                 4  12.4
TEMP*                  1                 5  12.5
TEMP*                  1                 6  12.6
TEMP*                  1                 7  12.7
TEMP*                  1                 8  12.8
TEMP*                  1                 9  12.9
TEMP*                  1               10  12.0
TEMP*                  1               11  13.1
TEMP*                  1               12  13.2
TEMP*                  1               13  13.3
TEMP*                  1               14  13.4
TEMP*                  1               15  13.5
TEMP*                  1               16  13.6
TEMP*                  1               17  13.7
TEMP*                  1               18  13.8
TEMP*                  1               19  13.9
TEMP*                  1               20  13.0
……
TEMP*                  1         30810  13.3
其中,TEMP*和1之间有18个字符;第3列数据为右对齐,相当于也占了18个字符(包含第3组中的数据值);底3、4列数据尖有两个字符。
现在需要把它处理完成后形式:
TEMP□□□□□1□□□□□□□1□□□□□□12.1
TEMP□□□□□1□□□□□□□2□□□□□□12.2
……
TEMP□□□□□1□□□□□□□10□□□□□12.0
TEMP□□□□□1□□□□□□□11□□□□□13.1
……
TEMP□□□□□1□□□□□□□30810□□13.0
其中,第1列需要把*(星号)去掉;第1列数据和第2列数据之间变为5个字符;第3列数据为左对齐,占7个字符;第4列数据为左对齐,无特殊要求。上面的“□”是代表空格,只是为了看起来方便,最终数据中都是空格。这个比较着急,希望能有人相助,深表感谢。附件为一部分数据。
回复此楼

» 猜你喜欢

你必须非常努力才能看起来毫不费力
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

keaSSy

至尊木虫 (著名写手)

引用回帖:
6楼: Originally posted by mygt_hit at 2016-09-11 12:31:58
问题出在x是cell数组,调用格式为x{i},而不是圆括号x(i)...

不是很懂 我没有MATLAB基础  对术语类的东西一窍不通  能不能麻烦您解释得简单一点
你必须非常努力才能看起来毫不费力
8楼2016-09-11 12:37:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

FMStation

至尊木虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
https://www.mathworks.com/help/matlab/ref/textread.html
Read data from text file; write to multiple outputs

https://www.mathworks.com/help/matlab/ref/fprintf.html
Write data to text file
CODE:
The first line of mydata.dat is
Sally    Level1 12.34 45 Yes

[names, types, x, y, answer] = textread('mydata.dat', ...
'%s %s %f %d %s', 1)

CODE:
A1 = [9.9, 9900];
A2 = [8.8,  7.7 ; ...
      8800, 7700];
formatSpec = 'X is %4.2f meters or %8.3f mm\n';
fprintf(formatSpec,A1,A2)

2楼2016-09-11 09:14:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

keaSSy

至尊木虫 (著名写手)

引用回帖:
2楼: Originally posted by FMStation at 2016-09-11 09:14:04
https://www.mathworks.com/help/matlab/ref/textread.html
Read data from text file; write to multiple outputs

https://www.mathworks.com/help/matlab/ref/fprintf.html
Write data to text file


Th ...

我的想法是先从原始数据里面把数据分成四组,分别为x,y,z,w,然后在写进另一文件proceseed_date.txt中,但是不知道哪里出错了,二切我不知道怎么去除那个“*”(星号),求大神帮忙改一下我下面的代码,真心是不会啊
format = '%s %d %d %f';
[x y z w] = textread('origin_date.txt', format);

fid = fopen('proceseed_date.txt', 'at');
format1 = '%-9s %-8d %-7d %-f\n';
for i = 1:20
    fprintf(fid, format1, x(i,, y(i), z(i), w(i));
end
fclose(fid);
你必须非常努力才能看起来毫不费力
3楼2016-09-11 10:45:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

keaSSy

至尊木虫 (著名写手)

引用回帖:
2楼: Originally posted by FMStation at 2016-09-11 09:14:04
https://www.mathworks.com/help/matlab/ref/textread.html
Read data from text file; write to multiple outputs

https://www.mathworks.com/help/matlab/ref/fprintf.html
Write data to text file


Th ...

不好意思,3楼的是失误,不小心把一个表情点进代码里面去了
我的想法是先从原始数据里面把数据分成四组,分别为x,y,z,w,然后在写进另一文件proceseed_date.txt中,但是不知道哪里出错了,二切我不知道怎么去除那个“*”(星号),求大神帮忙改一下我下面的代码,真心是不会啊
format = '%s %d %d %f';
[x y z w] = textread('origin_date.txt', format);

fid = fopen('proceseed_date.txt', 'at');
format1 = '%-9s %-8d %-7d %-f\n';
for i = 1:20
    fprintf(fid, format1, x(i,, y(i), z(i), w(i));
end
fclose(fid);
你必须非常努力才能看起来毫不费力
4楼2016-09-11 10:48:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 279分求调剂 一志愿211 +13 chaojifeixia 2026-03-19 14/700 2026-03-21 10:28 by JineShine
[考研] 332求调剂 +3 凤凰院丁真 2026-03-20 3/150 2026-03-21 10:27 by luoyongfeng
[考研] 08工科 320总分 求调剂 +6 梨花珞晚风 2026-03-17 6/300 2026-03-21 03:40 by JourneyLucky
[考研] 265求调剂 +3 Jack?k?y 2026-03-17 3/150 2026-03-21 03:17 by JourneyLucky
[考研] 材料工程(专)一志愿985 初试335求调剂 +3 hiloiy 2026-03-17 4/200 2026-03-21 03:04 by JourneyLucky
[考研] 一志愿武理材料305分求调剂 +6 想上岸的鲤鱼 2026-03-18 7/350 2026-03-21 01:03 by JourneyLucky
[考研] 22408 344分 求调剂 一志愿 华电计算机技术 +4 solanXXX 2026-03-20 4/200 2026-03-20 23:49 by alg094825
[考研] 一志愿南昌大学,327分,材料与化工085600 +9 Ncdx123456 2026-03-19 9/450 2026-03-20 23:41 by lovewei0727
[考研] 一志愿中海洋材料工程专硕330分求调剂 +8 小材化本科 2026-03-18 8/400 2026-03-20 23:16 by JourneyLucky
[考研] 304求调剂 +7 司空. 2026-03-18 7/350 2026-03-20 23:08 by JourneyLucky
[考研] 一志愿苏州大学材料求调剂,总分315(英一) +5 sbdksD 2026-03-19 5/250 2026-03-20 22:10 by luoyongfeng
[考研] 350求调剂 +5 weudhdk 2026-03-19 5/250 2026-03-20 22:04 by luoyongfeng
[考研] 一志愿西安交通大学 学硕 354求调剂211或者双一流 +3 我想要读研究生 2026-03-20 3/150 2026-03-20 20:13 by JourneyLucky
[考研] 0703化学调剂 +4 18889395102 2026-03-18 4/200 2026-03-19 16:13 by 30660438
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 0703化学336分求调剂 +6 zbzihdhd 2026-03-15 7/350 2026-03-18 09:53 by zhukairuo
[考博] 26申博 +4 八6八68 2026-03-16 4/200 2026-03-17 13:00 by 轻松不少随
[考研] 中科院材料273求调剂 +4 yzydy 2026-03-15 4/200 2026-03-16 15:59 by Gaodh_82
[考研] 26考研一志愿中国石油大学(华东)305分求调剂 +3 嘉年新程 2026-03-15 3/150 2026-03-15 13:58 by 哈哈哈哈嘿嘿嘿
[考研] 085601材料工程315分求调剂 +3 yang_0104 2026-03-15 3/150 2026-03-15 10:58 by peike
信息提示
请填处理意见