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

matlab中如何以多行字符串形式读取txt文件
首先,你备份文件,格式为,.txt。放在根目录下。然后我们用在matlab你面读取你的txt。尝试这个程序:M= gallery('integerdata', 100, [5 8], 0); dlmwrite('myfile.txt', M, 'delimiter', '\\t')D=dlmread('myfile.txt')第一行是我生成的一个矩阵,然后第二行我写入到文件'myfile.txt'...

matlab怎么批量读取txt文件
ew下有一系列txt文件,文件名符合matlab变量名的命名规则,并且没有temp.txt文件,每个文件有两列,以空格分割,第一列是字符串,第二列是浮点数字,要读取第二列的浮点数字为数组并以文件名为变量名。file=dir('E:ew\\*.txt');for n=1:length(file)temp=dlmread(['E:ew\\',file(n).name],...

matlab中如何以字符串形式读取txt文件
fid=fopen('ttt.txt','r');a=fgets(fid)fclose(fid);

Matlab中读取txt文件的几种方法
回答:17.891 -1.1286 33.045 1 11 111 1111 2 22 222 2222 3 33 333 3333 4 44 444 4444 5 55 555 5555” 方法有多种,现举两个比较简单实用的。方法一: file\/import data......\/next\/finish>> whosName Size Bytes Classdata 5x4 160 double array textdata 4x1 300 cell array...

求助。利用matlab选着行读取大文本数据
1. 首先,打开目标文本文件。在MATLAB中,可以使用`fopen`函数来实现。例如,文件名为`flash_locate2006_08_25_18_20_19.txt`,路径为当前工作目录,则命令为:`fid = fopen('flash_locate2006_08_25_18_20_19.txt', 'r');`2. 逐行读取文本数据。使用`fgetl`函数可以实现,循环直到文件结束...

matlab中怎么读取txt文件中的字符串
那个‘abc’等非字符串是导入不了的吧,如果你要导入的是纯数字的,我可以告诉你,但是你的txt文件要事先调一下,像 12 33 36 15 13 28这样就行了,然后用excel打开它,注意将文件类型选为所有文件,要不找不到txt文件,找到后打开,第二步会让你选以什么为分隔符制表,选上空格,然后打开了就...

matlab如何输出多行字符串并且写入文档
问题出在fprint是将整个array从上往下从左往右一个个字符输出,你的str本质上就是个2x18的矩阵,每个字母是一个元素,所以在fprintf之后按照访问顺序会输出”qpienigkhiunag uunniivveerrssiittyy“,你可以在输出的时候给str加个‘进行转制,结果不会出现之前的那种乱序,不过却不能换行 以下是可以正常...

matlab 如何读取txt 数据
对于有字符和数字混合的文件,如果你直接提取数据,可以使用以下2个函数 fgetl sscanf 比如说你的这一行:r1=3.2 y1=145487.57182125 fget返回的是string,A=fgetl(fid)sscanf可以进行搜寻你想要的string或者是数字 当然,你也可以靠判断等号的位置,然后把等号后面的数字截取,需要用到 strcmp函数 ...

matlab读取字符+数字的txt文本文件!
从第三行开始读,以空格为界定符,然后分别读到四个字符串中去

如何在matlab中读取TXT数据文件
只读形式打开txt文件 file_t = fopen('mytxt.txt','r');以十进制读取,且读取的数据自动排成一列,排的顺序为:先从第一行左边到第一行右边,然后排第二行 A = fscanf(file_t,'%d');关闭文件 fclose(file_t);使用textscan读取多列数据 file_t = fopen('mytxt.txt','r');将原来的两列...

相似回答