24小时热门版块排行榜    

查看: 1002  |  回复: 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的回帖

mygt_hit

专家顾问 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
月只蓝: 金币+20, 感谢应助! 2020-02-09 20:17:10
引用回帖:
4楼: Originally posted by keaSSy at 2016-09-11 10:48:35
不好意思,3楼的是失误,不小心把一个表情点进代码里面去了
我的想法是先从原始数据里面把数据分成四组,分别为x,y,z,w,然后在写进另一文件proceseed_date.txt中,但是不知道哪里出错了,二切我不知道怎么去除那 ...

问题出在x是cell数组,调用格式为x{i},而不是圆括号x(i)
知其然,知其所以然。
6楼2016-09-11 12:31:58
已阅   回复此楼   关注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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿211,0703化学310分求调剂 +3 努力奋斗112 2026-03-15 3/150 2026-03-21 22:21 by peike
[考研] 269专硕求调剂 +4 金恩贝 2026-03-21 4/200 2026-03-21 22:07 by ACS Nano——
[考研] 一志愿南大,0703化学,分数336,求调剂 +3 收到VS 2026-03-21 3/150 2026-03-21 18:42 by 学员8dgXkO
[考研] 277材料科学与工程080500求调剂 +6 自由煎饼果子 2026-03-16 6/300 2026-03-21 17:21 by 学员8dgXkO
[考研] 268求调剂 +9 简单点0 2026-03-17 9/450 2026-03-21 15:37 by lature00
[考研] 材料学学硕080502 337求调剂-一志愿华中科技大学 +4 顺顺顺mr 2026-03-18 5/250 2026-03-21 10:22 by luoyongfeng
[考研] 316求调剂 +6 梁茜雯 2026-03-19 6/300 2026-03-21 06:32 by Ecowxq666!
[考研] 307求调剂 +3 wyyyqx 2026-03-17 3/150 2026-03-21 03:20 by JourneyLucky
[考研] 化学求调剂 +4 临泽境llllll 2026-03-17 5/250 2026-03-21 02:23 by JourneyLucky
[考研] 085700资源与环境308求调剂 +12 墨墨漠 2026-03-18 13/650 2026-03-21 01:42 by JourneyLucky
[考研] 一志愿南京理工大学085701资源与环境302分求调剂 +4 葵梓卫队 2026-03-18 6/300 2026-03-20 23:02 by JourneyLucky
[考研] 北科281学硕材料求调剂 +5 tcxiaoxx 2026-03-20 5/250 2026-03-20 21:35 by laoshidan
[考研] 260求调剂 +3 朱芷琳 2026-03-20 3/150 2026-03-20 20:35 by 学员8dgXkO
[考研] 材料与化工专硕调剂 +7 heming3743 2026-03-16 7/350 2026-03-20 19:31 by zhukairuo
[考研] 298-一志愿中国农业大学-求调剂 +9 手机用户 2026-03-17 9/450 2026-03-20 14:24 by 无懈可击111
[考研] 085410人工智能专硕317求调剂(0854都可以) +4 xbxudjdn 2026-03-18 4/200 2026-03-20 09:07 by 不168
[考研] 085601材料工程专硕求调剂 +10 慕寒mio 2026-03-16 10/500 2026-03-19 15:26 by 丁丁*
[考研] 一志愿985,本科211,0817化学工程与技术319求调剂 +10 Liwangman 2026-03-15 10/500 2026-03-19 10:25 by 无际的草原
[考研] 材料工程专硕调剂 +5 204818@lcx 2026-03-17 6/300 2026-03-18 22:55 by 204818@lcx
[考研] 085601材料工程315分求调剂 +3 yang_0104 2026-03-15 3/150 2026-03-15 10:58 by peike
信息提示
请填处理意见