matlab 读取含有文本的txt
1.沒有文件頭 列規整
4.09+4.10,4.09+4.10
4.09+4.10,4.09+4.10
4.09+4.09,4.09+4.09
4.09+4.09,4.09+4.09
4.09+4.09,4.09+4.10
4.09+4.09,4.09+4.09
4.09+4.09,4.09+4.09
4.09+4.10,4.09+4.10
4.09+4.10,4.09+4.09
4.09+4.09,4.09+4.09
可以調用Matlab自帶的函數textread;
基本語法是:
? ? [A,B,C,…] = textread(filename,format)
? ? [A,B,C,…] = textread(filename,format,N)
其中filename就是文件名, format就是要讀取的格式,A,B,C就是從文件中讀取到的數據。
必須嚴格遵守用法不可出現data=textread(filename,format,N)的形式
其中括號里面變量的個數必須和format中定義的個數相同。?
如果每N行相同格式的數據,可采用[A,B,C,…] = textread(filename,format,N)的語法,讀取N次。
[a,b,c,d,e,f]=textread('Data.txt','%f %s %f %s %f %s %f');
2.字段名(中、英文字段均可)+數據
CODE:
CH0 CH1 CH2 CH3
0.000123 0.000325 0.000378 0.000598
0.000986 0.000256 0.000245 0.000698
Data = importdata('xueyang.txt'); data = Data.data;
3.注釋(含有獨立的數字串)+數據(列數相同)
%NULL
%NULL
CODE:
Group 2 ?12.02.2006 ? Limei
Samples of datas: 50000
%NULL
CH0 ?CH1 ?CH2 ?CH3
0.000123 ?0.000325 ? 0.000378 ? 0.000598
0.000986 ?0.000256 ? 0.000245 ? 0.000698
解:由于注釋中含有獨立的數字串,且注釋部分沒有明顯的格式,這時候用importdata, load等高級命令直接讀取會失敗,用 textread, dlmwrite 等格式化命令也不太合適,因此只能使用低級命令進行讀取。(當然了,可以跳過注釋部分直接用高級命令讀取數據,即:[a b c d] = textread(filename,'%f %f %f %f','headerlines',4); )。
一個簡單的、非通用的包含注釋的讀取方法如下:
clc;clear; fid = fopen('exp.txt', 'r'); fid_n=fopen('ex.dat','w'); while ~feof(fid)tline=fgetl(fid);if ~isempty(tline)if double(tline(1))>=48 && double(tline(1))<=57 %數值開始a=strread(tline);a(3:4)=[];fprintf(fid_n,'%f %f\n',a);clear a;elseif double(tline(1))==67 %字母C開始[b1,b2,b3,b4]=strread(tline,'%s %s %s %s');b=[b1{1},' ',b2{1}];fprintf(fid_n,'%s\n',b);clear b b1 b2 b3 b4;elsefprintf(fid_n,'%s\n',tline);endelsefprintf(fid_n,'%s\n',tline);end end fclose(fid); fclose(fid_n);
總結
以上是生活随笔為你收集整理的matlab 读取含有文本的txt的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞鸽传书谈哈希表之数学原理
- 下一篇: 多功能监护系统开发与设计