matlab中如何以多行字符串形式读取txt文件

以下是names.txt中的一部分:
'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'
如何将该names.txt文档中的英文名字存为多行字符串变量?使得行数为英文名字的个数

首先,你备份文件,格式为,.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');

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-07-12
在使用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 %表示关闭成功
第2个回答  2013-10-14
把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
相似回答