Matlab中读取txt文件的几种方法

Matlab中读取txt文件的几种方法,第1张

17891 -11286 330451 11 111 11112 22 222 22223 33 333 33334 44 444 44445 55 555 5555”方法有多种,现举两个比较简单实用的。方法一: file/import data/next/finish>> whosName Size Bytes Classdata 5x4 160 double arraytextdata 4x1 300 cell arrayGrand total is 54 elements using 460 bytes>> datadata = 1 11 111 11112 22 222 22223 33 333 33334 44 444 4444[a1,a2,a3,a4]=textread('test1txt','%s%s%s%s','headerlines',4)说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。这里%s的个数和[a1,a2,a3,a4]对应。>> [a1,a2,a3,a4]=textread('test1txt','%s%s%s%s','headerlines',4)a1 = '1''2''3''4''5'a2 = '11''22''33''44''55'a3 = '111''222''333''444''555'a4 = '1111''2222''3333''4444''5555'因以字符串的形式读入,所以有''。————————————————————————————————三、中文 数据英文混乱如testtxt你好vibhiteducn4 44 444 44445 55 555 5555说明:这种内容格式的文件用上面的方法是不行的。以下是由chinamaker编写的一种方法:fidin=fopen('testtxt'); % 打开test2txt文件 fidout=fopen('mkmatlabtxt','w'); % 创建MKMATLABtxt文件while ~feof(fidin) % 判断是否为文件末尾 tline=fgetl(fidin); % 从文件读行 if double(tline(1))>=48&&double(tline(1))> MKMK = 1 11 111 11112 22 222 22223 33 333 3333

设置当前文件夹为数据所在地,使用dir命令获取目录下文件名称,使用字符串命令创建命令的字符串形式(如‘load 0_1txt’),使用eval命令运行命令的字符串形式。要点是生成能导入数据命令的字符串形式

我这里有一个读取的实例你可以看一下

%%

格式化文本的读 *** 作

%只读形式打开txt文件

file_t

=

fopen('mytxttxt','r');

%以十进制读取,且读取的数据自动排成一列,排的顺序为:先从第一行左边到第一行右边,然后排第二行

A

=

fscanf(file_t,'%d');

%关闭文件

fclose(file_t);

%%

使用textscan读取多列数据

file_t

=

fopen('mytxttxt','r');

%将原来的两列数据以数组原包(cell)的形式读取,cell共有两个元素

A

=

textscan(file_t,'%d

%d');

%C和上面A一样,D返回位置信息

[C,D]

=

textscan(file_t,'%d

%d');

fclose(file_t);

A{1}

%原包数据的第一个元素对应第一列

A{2}

C

D

%%

textread函数读取,现在不常用

%这种形式将每一列分别给A,B

[A,B]

=

textread('mytxttxt','%d

%d');

A

B

%这种形式将txt文件排成一列赋给C

C

=

textread('mytxttxt','%d');

C

%%

忽略标题

file_t

=

fopen('headlinetxt','r');

%忽略掉第一行的标题信息

A

=

textscan(file_t,'%d

%d','HeaderLines',1);

A

%%

使用textscan扫描字符串中的数据

clc

str_1

=

'The

number

is

1

2

3

4

5';

%首先使用textscan获取第一个前14个字符

[str1,position1]

=

textscan(str_1,'%14c',1);

str1{:};

%The

number

is

position1;

%14

%获取字符串的长度

[temp1,temp2]

=

size(str_1);

%然后读取后面的数字字符串

str_2

=

textscan(str_1(position1+1:temp2),'%9c',1);

%将字符串转化为数值

num

=

str2num(str_2{1})

%%

格式化文本的写 *** 作

%使用fprintf向文件中写入数据

%写形式打开文件,存在就打开,不存在新创建一个文件开始写

file_1

=

fopen('text_wtxt','w');

%以数字形式写入数据

fprintf(file_1,'%d',1225);

%关闭文件,返回0表示关闭成功

fclose(file_1);

%%

每写入一次换行或插入想要的字符

file_1

=

fopen('text_wtxt','w');

%\r回车符

\n换行符

这里必须回车换行连用

fprintf(file_1,'%d\r\n',[32;34]);

%每写入一个数字,后加一个空格,多列按列输出

temp

=

randint(4,2);

fprintf(file_1,'%d

',temp);

fclose(file_1);

%%

fprintf在命令空间输出

str_1

=

'Hello!

World!';

%这里fid

=

1;这时输出换行只需\n就行,%c为输出单个字符,%s为输出字符串

fprintf(1,'%c\n',str_1);

%%

扫描字符串2

clear

clc

str

=

'1985

112

-1053';

%将

替换为0

A

=

find(str

==

32);

str(A)

=

48;

%下面这这一句相当于+198501120-1053

%不是你给的+19850112-01053

str2num(str)

以上就是关于Matlab中读取txt文件的几种方法全部的内容,包括:Matlab中读取txt文件的几种方法、怎样用matlab依次读取多个txt文件、如何在matlab中读取TXT数据文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10168778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存