首先,你备份文件,格式为,.txt。放在根目录下。
然后我们用在matlab你面读取你的txt。
尝试这个程序:
M= gallery('integerdata', 100, [5 8], 0);
dlmwrite('myfile.txt', M, 'delimiter', '\t')
D=dlmread('myfile.txt')
第一行是我生成的一个矩阵,然后第二行我写入到文件'myfile.txt'。
这就模拟了你的.dat文件, 改成.txt之后的样子。
你在程序第一行写
D=dlmread('myfile.txt')
就读取了文件。并把读取的,写入到了D矩阵中。
结果如下:
‘myfile.txt’就是你说的字符串,一行程序就可以完成读取。
D=dlmread('myfile.txt');
在使用MATLAB遇到问题时,在网上搜索到很多有用的知识,比起看帮助文件的英文要省力的多了
matlab文件操作
文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。MATLAB提供了一系列低层输入输出函数,专门用于文件操作。
1、文件的打开与关闭
1)打开文件
在读写文件之前,必须先用fopen函数打开或创建文件,并指定对该文件进行的操作方式。fopen函数的调用格式为:
fid=fopen(文件名,‘打开方式’)
说明:其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。文件名用字符串形式,表示待打开的数据文件。常见的打开方式如下:
‘r’:只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。
‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。
‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。
‘a’:在打开的文件末端添加数据。文件不存在则创建。
‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。
另外,在这些字符串后添加一个“t”,如‘rt’或‘wt+’,则将该文件以文本方式打开;如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。
2)关闭文件
文件在进行完读、写等操作后,应及时关闭,以免数据丢失。关闭文件用fclose函数,调用格式为:
sta=fclose(fid)
说明:该函数关闭fid所表示的文件。sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回-1。如果要关闭所有已打开的文件用fclose(‘all’)。
2、二进制文件的读写操作
1)写二进制文件
fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为:
COUNT=fwrite(fid,A,precision)
说明:其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:char、uchar、int、long、float、double等。缺省数据精度为uchar,即无符号字符格式。
例6.8 将一个二进制矩阵存入磁盘文件中。
>> a=[1 2 3 4 5 6 7 8 9];
>> fid=fopen('d:\test.bin','wb') %以二进制数据写入方式打开文件
fid =
3 %其值大于0,表示打开成功
>> fwrite(fid,a,'double')
ans =
9 %表示写入了9个数据
>> fclose(fid)
ans =
0 %表示关闭成功
把names.txt文件放入matlab安装目录下work(默认搜索路径)文件夹下,试下:
clc,clear
a=textread('names.txt','%c');
n=1;j=1;
for i=1:length(a)
x=a(i);
if x~=','
file(n,j)=x;
j=j+1;
else
n=n+1;
j=1;
end
end
file
mingzigeshu=n
结果:
file =
'MARY'
'PATRICIA'
'LINDA'
'BARBARA'
'ELIZABETH'
'JENNIFER'
'MARIA'
'SUSAN'
'MARGARET'
'DOROTHY'
'LISA'
'NANCY'
'KAREN'
'BETTY'
'HELEN'
'SANDRA'
'DONNA'
'CAROL'
'RUTH'
'SHARON'
'MICHELLE'
'LAURA'
'SARAH'
'KIMBERLY'
'DEBORAH'
'JESSICA'
'SHIRLEY'
'CYNTHIA'
'ANGELA'
'MELISSA'
'BRENDA'
'AMY'
'ANNA'
'REBECCA'
'VIRGINIA'
'KATHLEEN'
'PAMELA'
'MARTHA'
'DEBRA'
'AMANDA'
'STEPHANIE'
'CAROLYN'
'CHRISTINE'
'MARIE'
'JANET'
'CATHERINE'
'FRANCES'
'ANN'
'JOYCE'
'DIANE'
'ALICE'
'JULIE'
'HEATHER'
'TERESA'
'DORIS'
'GLORIA'
'EVELYN'
'JEAN'
'CHERYL'
'MILDRED'
'KATHERINE'
'JOAN'
'ASHLEY'
'JUDITH'
'ROSE'
'JANICE'
mingzigeshu =
66