今天打算跑下程序,突然发现,真的很烂,不会读入数据,简单的Iris.txt一上午都没读进去,在此对matlab中的textread函数做下总结,textscan函数待续。
笔者在此基础上进行运行,修改得到以下内容,希望大家给与补充:
textread
基本语法是:
[A,B,C,…] = textread(filename,format,N)
其中filename就是文件名, format就是要读取的格式,A,B,C就是从文件中读取到的数据。
必须严格遵守用法不可出现data=textread(filename,format,N)的形式
注:textread不用先fopen那个文件,适用于格式统一的txt文件的一次性大批量读取。textread读取某个文件后,下次再用textread读取这个文件时,还是会从文件头开始读取。
________________________________________________________________________________________
例如:
………………………………………………………………………….
例1:无分隔符
mytest.txt
1 2 3 4
5 6 7 8
9 10 11
读取:
>>[data1,data2,data3,data4]=textread(‘mytest.txt’,‘%n%n%n%n’);
>>data=[data1 data2 data3 data4]
data =
1 2 3 4
5 6 7 8
9 10 11 12
或者,[data1,data2,data3,data4]=textread(filename,‘%n%n%n%n’,3);%注意3为读取次数,应该是行数
…………………………………………………………………………
读取:
>> [data1,data2,data3,data4]=textread(‘myfile.txt’,‘%n%n%n%n’,‘delimiter’, ‘,’)
>> data=[data1 data2 data3 data4]
data =
1 2 3 4
5 6 7 8
9 10 11 12
这里delimiter是指 指出分隔符,读数据的时候会自动跳过分隔符。
需要注意的是,参数位置要和textread函数用法对应
[A,B,C,…] = textread(filename,format,N)也就是filename,format,N三个参数必须在其他参数前面,所以150才会出现在format后
例如:[data1,data2,data3,data4,data5]=textread(‘Iris.txt’,‘%f%f%f%f%s’,150,‘delimiter’,‘,’);
……………………………………………………………………
data =
1 2 3 4
5 6 7 8
9 10 11 12
textread中的headerlines指明了跳过几行,1可自由设定
这里headerlines告诉textread跳过一开始的1行,1可以替换为任意你要跳过的行数。
……………………………………………………………………
例4:针对txt文件不同格式数据的读取
myfile.txt 中的内容如下:
对于iris.txt如果只想读取数据可用[data1,data2,data3,data4]=textread(‘Iris.txt’,‘%f %f %f %f %s’,150,‘delimiter’,‘,’);
____________________________________________________________________________________________
例:4.2
>> [names, levelnum, x, y, answer] = textread(‘myfileli4.txt’,‘%s Level%d %f %d %s’, 1)
names =
levelnum =
x =
y =
answer =
‘Yes’
________________________________________________________________________________________________
……………………………………………………..OK ………………………………………..
例5: txt中存在空位
myfileli5.txt 中的内容如下
如下:
>>[data1 data2 data3 data4 data5 data6] = textread(‘myfileli5.txt’,‘%f%f%f%f%f%f’, ‘delimiter’, ‘,’, ‘emptyvalue’, NaN)
>> data=[data1 data2 data3 data4 data5 data6];
>> data
data =
1 2 3 4 NaN 6
7 8 9 NaN 11
……………………………………………………………………………………………………..
例6: 跳列

myfileli6.txt 中的内容如下
如果只想读第一列,其余的跳过
读入:
>> clear
>> [names]=textread(‘myfileli6.txt’,‘%s%[^ ]’);
>> names
names =
‘Sally’
‘Joe’
%[^ ] 就是一直读到行尾。
如:
>> [names rest]=textread(‘myfileli6.txt’,‘%s%[^ ]’)
names =
‘Sally’
‘Joe’
‘Type1 12.34 45 Yes’
‘Type2 23.54 60 No’
…………………………………………………………………………
例7:读入规律格式的数据
myfileli7.txt 中的内容如下
Location;date;discharge
Lobith;1989-01-01;00:00;2801
如下:
>> clear
>> [location year month day hour minute discharge]=textread(‘myfileli7.txt’,‘%s%f-%f-%f%f:%f%f’,‘headerlines’,1,‘delimiter’,‘;’)
location =

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/189183.html