| 查看: 914 | 回复: 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列数据为左对齐,无特殊要求。上面的“□”是代表空格,只是为了看起来方便,最终数据中都是空格。这个比较着急,希望能有人相助,深表感谢。附件为一部分数据。 |
» 猜你喜欢
假如你的研究生提出不合理要求
已经有6人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
不自信的我
已经有12人回复
所感
已经有4人回复
论文终于录用啦!满足毕业条件了
已经有28人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复
实验室接单子
已经有3人回复
磺酰氟产物,毕不了业了!
已经有8人回复

keaSSy
至尊木虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 17626.2
- 散金: 924
- 红花: 10
- 沙发: 8
- 帖子: 2292
- 在线: 278.4小时
- 虫号: 2569209
- 注册: 2013-07-28
- 性别: GG
- 专业: 机械工程

9楼2016-09-11 13:02:08
FMStation
至尊木虫 (知名作家)
- 应助: 591 (博士)
- 贵宾: 0.03
- 金币: 18157.7
- 红花: 97
- 帖子: 8891
- 在线: 1486小时
- 虫号: 2400059
- 注册: 2013-04-04
- 专业: 计算机应用技术
2楼2016-09-11 09:14:04
keaSSy
至尊木虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 17626.2
- 散金: 924
- 红花: 10
- 沙发: 8
- 帖子: 2292
- 在线: 278.4小时
- 虫号: 2569209
- 注册: 2013-07-28
- 性别: GG
- 专业: 机械工程
|
我的想法是先从原始数据里面把数据分成四组,分别为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
keaSSy
至尊木虫 (著名写手)
- 应助: 0 (幼儿园)
- 金币: 17626.2
- 散金: 924
- 红花: 10
- 沙发: 8
- 帖子: 2292
- 在线: 278.4小时
- 虫号: 2569209
- 注册: 2013-07-28
- 性别: GG
- 专业: 机械工程
|
不好意思,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












回复此楼

, y(i), z(i), w(i));