在matlab中怎样读入.txt文件中的数据

来自:    更新日期:早些时候
matlab怎样从文本txt文件中读入数据到矩阵~

% 打开文件(注意修改文件名)
fid = fopen('480684994.txt','rt');
if fid == 0, return, end% 读文件直到结束
while ~feof(fid)
% 每次读入一行
s = fgetl(fid);% 以空格作为数据项的分隔符

扩展资料:反过来Matlab读写矩阵到文本文件
批量读出文本中的数据常用的函数是importdata(),可以分别导入数据中的字符和数值数据,并可以跳过指定行等,importdata很强大,不仅可以操作文本数据,同样可以读取二进制数据,比如图像。
简单介绍下其用法:
A = importdata(filename,delimiterIn,headerlinesIn)
函数按特定分隔符delimiterIn,跳过头headerlinesIn行读取数据,这两个参数默认可以缺省。
这里特别要讲一组方便的文本批量读写操作函数(Read/Write matrix from/to ASCII-delimited file),也即dlmread和dlmwrite。
dlmread基本用法:
M = dlmread(filename) % 直接读取一个数值文本文件
M = dlmread(filename,delimiter) % 按特定分隔符读取一个文件
M = dlmread(filename,delimiter,R1,C1) % 从指定行列读取文件,通常可以用这种方式提过字符行
M = dlmread(filename,delimiter,[R1 C1 R2 C2]) % 读取指定行列区间的数据

方法一:
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 =

'你好'
'欢迎来到'
'百思论坛'
'www.baisi.net'

方法二:

[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
www.baisi.net
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))>=48&&double(tline(1))<=57 % 判断首字符是否是数值
fprintf(fidout,'%s

',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

fid=fopen('a.txt');A=fscanf(fid,'%s');这样A就把所有文本内容读入了


在matlab中怎样读入.txt文件中的数据视频

相关评论:
  • 19514962045Matlab中读取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...

  • 19514962045text数据放在哪里才能让matlab读入
    柯券汪matlab可以读取任意路径下的文件,如果不在工作路径下,在读取的时候需要指定文件路径。一般情况下,都是将文件放到matlab工作路径中。然后直接读取文件的名称即可。如下:只读形式打开txt文件file_t = fopen('mytxt.txt','r');%以十进制读取,且读取的数据自动排成一列,排的顺序为:先从第一行左边到...

  • 19514962045如何从matlab中读取"*.txt"文本文件的格式
    柯券汪可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file\/import data...\/next\/finish 也可产生一个叫test的数据文件。二、中英文和数据如test1.txt “你好 欢迎来到 振动论坛 vib.hit.edu.cn 1 11 111 1111 2 22 222...

  • 19514962045matlab如何读取其中的一部分文件?
    柯券汪一、纯数据文件(没有字母和中文,纯数字)\\x0d\\x0a对于这种txt文档,从matalb中读取就简单多了\\x0d\\x0a例如test.txt文件,内容为\\x0d\\x0a17.901 -1.1111 33.045 \\x0d\\x0a17.891 -1.1286 33.045 \\x0d\\x0a17.884 -1.1345 33.045\\x0d\\x0a可以在command window中输入load te...

  • 19514962045matlab中,怎样将txt数据(x,y)文件读入GUI界面,并显示在table或listbox中...
    柯券汪1.txt'); % 打开1.txt文件 while ~feof(fidin) % 判断是否为文件末尾 tline=fgetl(fidin); % 从文件读行 plot(x,y)axes(handles.axes1);imshow(im);

  • 19514962045在MATLAB中怎样读取TXT混合文件中的数据
    柯券汪t=a(1:43,4:10);1:43是1到43行,4:10是4到10列的数据,当然也可以只读一个数据,如果你的matlab没有textread函数,直接从mathworks网站下载就行。根据txt文档不同种类介绍不同的读取数据方法 一、纯数据文件(没有字母和中文,纯数字)对于这种txt文档,从matalb中读取就简单多了 例如test.txt...

  • 19514962045matlab怎么读入一个txt文件
    柯券汪格式化文本的读操作%只读形式打开txt文件file_t = fopen('mytxt.txt','r');%以十进制读取,且读取的数据自动排成一列,排的顺序为:先从第一行左边到第一行右边,然后排第二行A = fscanf(file_t,'%d');%关闭文件fclose(file_t);使用textscan读取多列数据file_t = fopen('mytxt.txt','...

  • 19514962045如何用matlab读TXT格式的心电信号并画图?心电信号滤波在matlab中...
    柯券汪[filename,filepath]=uigetfile('E:\\实验数据9.29\\*.txt');filename=[filepath,filename];[t,ecg_pre]=textread(filename,'%f%f','headerlines',1);plot(t,ecg_pre);wn=[10 150]\/SamplingFre; %巴特沃斯带通滤波器 [b,a]=butter(3,wn);ecg_post=filter(b,a,ecg_pre);figure pl...

  • 19514962045matlab中t是从0开始索引的吗
    柯券汪在MATLAB中,通常情况下t是从1开始索引的。这是因为MATLAB是基于数组索引的,索引从1开始计数。然而,可以通过指定偏移量来使用从0开始的索引。例如,可以在创建向量或矩阵时使用`zeros`或`ones`函数,并在索引操作中使用偏移量来模拟从0开始的索引。例如,`A = zeros(10, 1); A(1:end) = t-1...

  • 19514962045MATLAB读入带有头文件的文本文档
    柯券汪a=textread('data.txt','%*s%*s%f%*s','headerlines',3,'delimiter',' ')save ok.txt a -ascii 首先headerlines是文件头有多少行 delimiter就是词跟词之间的分隔符。'%*s%*s%f%*s'这个比较麻烦一些。首先%s是字符串的意思,%f是浮点数的意思 而在它们中间加上*,表示跳过这个词。s%*...

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网