读取文件的代码matlab(读取文件的代码c语言)

http://www.itjxue.com  2023-03-26 14:44  来源:未知  点击次数: 

matlab读取文件

一、纯数据文件(没有字母和中文,纯数字)

对于这种txt文档,从matalb中读取就简单多了

例如test.txt文件,内容为

17.901 -1.1111 33.045

17.891 -1.1286 33.045

17.884 -1.1345 33.045

可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。

二、中英文和数据如test1.txt

你好

欢迎来到

论坛

edu.cn

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

whos

Name Size Bytes Class

data 5x4 160 double array

textdata 4x1 300 cell array

Grand total is 54 elements using 460 bytes

data

data =

1 11 111 1111

2 22 222 2222

3 33 333 3333

4 44 444 4444

5 55 555 5555

textdata

textdata =

'你好'

'欢迎来到'

'论坛'

'edu.cn'

方法二:

[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)

说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。

这里%s的个数和[a1,a2,a3,a4]对应。

[a1,a2,a3,a4]=textread('test1.txt','%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'

因以字符串的形式读入,所以有''。

————————————————————————————————

三、中文 数据 英文 混乱如test.txt

你好

1 11 111 1111

欢迎来到

2 22 222 2222

论坛

3 33 333 3333

edu.cn

4 44 444 4444

5 55 555 5555

说明:这种内容格式的文件用上面的方法是不行的。

以下是由chinamaker编写的一种方法:

fidin=fopen('test.txt'); % 打开test2.txt文件

fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件

while ~feof(fidin) % 判断是否为文件末尾

tline=fgetl(fidin); % 从文件读行

if double(tline(1))=48double(tline(1))=57 % 判断首字符是否是数值

fprintf(fidout,'%s\n\n',tline); % 如果是数字行,把此行数据写入文件MKMATLAB.txt

continue % 如果是非数字继续下一次循环

end

end

fclose(fidout);

MK=importdata('MKMATLAB.txt'); % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来

MK

MK =

1 11 111 1111

2 22 222 2222

3 33 333 3333

4 44 444 4444

5 55 555 5555

---------------------------------------------------------------

我的txt数据里既有数字又有字符串,形式为:

0.129515 DDAA 01 2.24609 94.50000 98

0.130434 DDAA 01 2.24609 96.30000 9A

0.131441 DDAA 01 2.24609 97.20000 9B

0.132448 DDAA 01 2.24609 99.00000 9D

0.133507 DDAA 01 2.24609 100.80000 9F

0.134515 DDAA 01 2.24609 101.70000 A0

............

我只想要第一列,第四列,第五列。

也就是0.129515 2.24609 94.50000 这3列数,

怎样导入matlab啊?

假设数据在data.txt里,且位于当面matlab路径里,用下面这句就可以了

[col1,col2,col3]=textread('data.txt','%f %*s %*d %f %f %*s',-1);

matlab怎么读取文本文件中的数据?

方法一:

A=importdata(file,space,line)

其中,file是所读取的文件名,space是特定的分隔符,line是一个数字,指文本中字符串文字的行数,如上文的数据中line=4。

此代码的含义是,line行是title,line+1行到end是数据,按特定分隔符space读取数据。此方法可以读取文本在上和数据在下的文件。

A是一个sturct,其中A.data就是所需的数据了。

exapmle:

A=importdata('test.txt','

',4);%运行即可取得数据A.data

此方法也可以按以下操作获取:

在文件菜单中选择

file/import

data,按照提示进行操作至结束。

command

窗口中输入

whos

Name

Size

Bytes

Class

data

5x4

160

double

array

textdata

4x1

300

cell

array

Grand

total

is

54

elements

using

460

bytes

data

data

=

1

11

111

1111

2

22

222

2222

3

33

333

3333

4

44

444

4444

5

55

555

5555

textdata

textdata

=

'你好'

'欢迎来到'

'百思论坛'

''

方法二:

[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)

说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%d,%f等。

这里%s的个数和[a1,a2,a3,a4]对应。

[a1,a2,a3,a4]=textread('test1.txt','%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'

因以字符串的形式读入,所以有''。

文件内容形式二(假定文件名为test2.txt):

你好

1

11

111

1111

欢迎来到

2

22

222

2222

百思论坛

3

33

333

3333

4

44

444

4444

5

55

555

5555

说明:这种内容格式的文件用上面的方法是不行的。

方法三:

以下是由chinamaker编写的一种方法,但是需要重新建一个文本。

fidin=fopen('test2.txt');

%

打开test2.txt文件

fidout=fopen('mkmatlab.txt','w');

%

创建MKMATLAB.txt文件

while

~feof(fidin)

%

判断是否为文件末尾

tline=fgetl(fidin);

%

从文件读行

if

double(tline(1))=48double(tline(1))=57

%

判断首字符是否是数值

fprintf(fidout,'%s\n\n',tline);

%

如果是数字行,把此行数据写入文件MKMATLAB.txt

continue

%

如果是非数字继续下一次循环

end

end

fclose(fidout);

MK=importdata('MKMATLAB.txt');

%

将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来

MK

MK

=

1

11

111

1111

2

22

222

2222

3

33

333

3333

4

44

444

4444

5

55

555

5555

Matlab如何读取文本文件

1、首先,这里举例自己先制作一个txtde 文本文件,如下面页面的内容。

2、将文本文件放入matlab的工作路径,方便读取操作。例如,如果我的文本文件在桌面上,我可以将matlab的工作路径更改为桌面。具体方法是单击matlab当前工作路径后的省略号,弹出选项选择文件夹,然后选择相应的路径。

3、接下来,我们使用importdata函数来读取文件。例如,我想读取一个名为data的文本文件,可以在命令窗口中输入:数据= IMPORTDATA( 'data.txt中')。

4、结果表明数据是一个结构数组。在这一点上,我们可以看看结构的每个部分代表什么。如下图所示,第一个数组表示文本文件的数量,第二个和第三个数组表示文本文件中的中文字符。此时,每个人都可以根据需要引用相应的数组。

5、除了上述功能外,您还可以使用textread函数进行读取。使用此功能时,可以指定输出内容各部分的格式,具体用法是[a,b,c,d] = textread('data.txt','%2s%.3f%.3f%.3f')。

其中,textread的第二个引号表示输出内容的格式。例如,%2s表示第一列的输出格式是单元格数组形式,%。3f表示输出数字保留3个小数位。

(责任编辑:IT教学网)

更多