指点成金-最美分享吧

登录

matlab如何读取txt文件

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了matlab如何读取txt文件相关的知识,希望对你有一定的参考价值。

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个小数位。

参考技术A

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

%% 格式化文本的读操作

%只读形式打开txt文件
file_t = fopen("mytxt.txt","r");
%以十进制读取,且读取的数据自动排成一列,排的顺序为:先从第一行左边到第一行右边,然后排第二行
A = fscanf(file_t,"%d");
%关闭文件
fclose(file_t);

%% 使用textscan读取多列数据
file_t = fopen("mytxt.txt","r");
%将原来的两列数据以数组原包(cell)的形式读取,cell共有两个元素
A = textscan(file_t,"%d %d");
%C和上面A一样,D返回位置信息
[C,D] = textscan(file_t,"%d %d");
fclose(file_t);
A1            %原包数据的第一个元素对应第一列
A2
C
D

%% textread函数读取,现在不常用
%这种形式将每一列分别给A,B
[A,B] = textread("mytxt.txt","%d %d");
A
B
%这种形式将txt文件排成一列赋给C
C = textread("mytxt.txt","%d");
C

%% 忽略标题
file_t = fopen("headline.txt","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_21)


%% 格式化文本的写操作

%使用fprintf向文件中写入数据
%写形式打开文件,存在就打开,不存在新创建一个文件开始写
file_1 = fopen("text_w.txt","w");
%以数字形式写入数据
fprintf(file_1,"%d",1225);
%关闭文件,返回0表示关闭成功
fclose(file_1);

%% 每写入一次换行或插入想要的字符
file_1 = fopen("text_w.txt","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 -10.53";
%将 替换为0
A = find(str == 32);
str(A) = 48;
%下面这这一句相当于+198501120-10.53
%不是你给的+19850112-010.53
str2num(str)

本回答被提问者和网友采纳

以上是关于matlab如何读取txt文件的主要内容,如果未能解决你的问题,请参考以下文章