作者profyang (prof)
看板MATLAB
标题[讨论] 请问textscan用法
时间Sun Mar 24 18:52:03 2019
本来matlab读档都写得很随意(用fgetl之类的一行行读)
据说大档案但有规律的用textscan读起来蛮快的
但我的档案内容类似这样:
0: 0
1.55853637077072
1.55853643267316
1.55853630886829
1.55853624696587
-0.00134146529463404
1
1: 1e-13
1.55853637077072
1.55853643267316
1.55853630886829
1.55853624696587
-0.00134146529463405
1
2: 2e-13
1.55853637077072
1.55853643267316
1.55853630886829
1.55853624696587
-0.00134146529463405
2
总之应该可以看出就是0:开头到1:前一行是一组
1:到2:前一行又是一组 以上共是3组
而我面对的档案总共有至少上万组甚至十万组要读
这样要怎麽写比较好?直接textscan(fid,'%f')的话卡了个0:和1:这种东西
想把':'和'\n'换行符号都当成delimiter好像也不让我这样写:
textscan(fid,'%f','delimiter',{':','\n'})
又不想一行行fgetl之类的判断然後读 有没有比较好的写法呢?谢谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.166.216.213
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1553424727.A.0B3.html
1F:→ book5601: 你的档案来源如果是自己写的程式跑出来的值,就直接该改 03/24 23:26
2F:→ book5601: 程式码变成好读不就好了。 03/24 23:26
3F:→ book5601: 如果不是,我可能会直接Ctrl+H取代不要的符号哈哈哈(赶 03/24 23:29
4F:→ book5601: 时间的做法 03/24 23:29
5F:推 physbook: 法1. 先用文字编辑器把换行符号取代成自订的分隔符号 03/25 08:00
6F:→ physbook: 法2. 搭配回圈读各组的值 03/25 08:01
取代是也可以
但是我这个是一个加密档转出来的ASCII文字档
等於我要加密转档ASCII=>ASCII读进matlab(这篇问的部分)
这过程我希望可以是全自动的 不然加密转档等半天也不知道好了没
然後才又手动取代再用matlab读好麻烦
当然用matlab取代也可行 但这样效率是不是不会比我直接用回圈读快?
※ 编辑: profyang (114.37.132.205), 03/25/2019 08:42:49