matlab读取txt文件中的数据存为矩阵

将文件中的数据存到一个矩阵A中。从facet normal到endfacet都是一样的,每个文件有很多个这样的循环。
A=[-1,0,0;
0,100,100;
0,100,0;
0,0,0;]

1、打开一个txt文件,会发现他既有字符又有数值。

2、此时将字符全部删除,只留下有用的数据数值。

3、记住该文件夹的地址,一会要作为路径用于matlab读取。

4、此时使用一个textread函数,函数内部代入刚才的txt文件路径。

5、textread函数会把这些数据读成1为向量。我们将其分为两列,用x和y代表,保存为矩阵。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-12-01
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)读二进制文件
fread函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:
[A,COUNT]=fread(fid,size,precision)
说明:其中A是用于存放读取数据的矩阵、COUNT是返回所读取的数据元素个数、fid为文件句柄、size为可选项,若不选用则读取整个文件内容;若选用则它的值可以是下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放)。precision用于控制所写数据的精度,其形式与fwrite函数相同。
3、文本文件的读写操作
1)读文本文件
fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵。其调用格式为:
[A,COUNT]=fscanf(fid,format,size)
说明:其中A用来存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,format用来控制读取的数据格式,由%加上格式符组成,常见的格式符有:d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等。size为可选项,决定矩阵A中数据的排列形式,它可以取下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×N的矩阵中,数据按列存放)。
2)写文本文件
fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:
fprintf(fid,format,A)
说明:fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。
例6.9 创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。
>> a='string';
>> fid=fopen('d:\char1.txt','w');
>> fprintf(fid,'%s',a);
>> fclose(fid);
>> fid1=fopen('d:\char1.txt','rt');
>> fid1=fopen('d:\char1.txt','rt');
>> b=fscanf(fid1,'%s')
b =
string
matlab读txt文件
fid=fopen('fx.txt','r'); %得到文件号
[f,count]=fscanf(fid,'%f %f',[12,90]);
%把文件号1的数据读到f中。其中f是[12 90]的矩阵
%这里'%f %f'表示读取数据的形势,他是按原始数据型读出
fclose(fid);
%关闭文件
另外有的txt文件还可以用load来打开
其语句为
f=load('fx.txt)

一个写入txt文件的小例子:
N=100;
R=rand(1,N);
fid = fopen('tt.txt','wt');
for k=1:N;
p=num2str(R(k));
fprintf(fid,'%c',p);
fprintf(fid,'%c\n',' ');
end
fclose(fid);
第2个回答  推荐于2017-12-16
fid=fopen('文件名','r');
s=fread(fid,inf,'uint8=>char')';%读取文件内容
fclose(fid);
str=regexp(s,'([-+]?\d+)(\.)?(\d*)([eE][-+]?\d+)?','match');%匹配数值的字符串
data=cellfun(@str2num,str);%字符串转为数值存在data中
A=reshape(data,[3 4 length(data)/12]);%整形
A=permute(data,[2 1 3]);

最后A是个三维矩阵,

A(:,:,1)是第一组数据,

A(:,:,2)是第二组数据。。。。以此类推


在倒数第三句中data已经是所有数据组成的行向量

你可以根据自己的需要,让它变形为你所需要的数据

本回答被提问者和网友采纳
第3个回答  2015-08-07

To read file.txt, the required commands are [fopen], [fscanf].

fopen: is used to open the file you expected.

fscanf: is used to scan the information inside the file you expected to read.

The following content is the step-by-step instruction. Just ensure both data file and code file in the same directory, which could minimize the error for your code.

    Create the file called "data.txt" including the following information

1 1.1 2.2
2 3.3 4.4
3 5.5 6.6

    2. Write a code to fetch the information inside data.txt and store them into a matrix A

fileID = fopen( 'data.txt','r' );
% 'data.txt' is the file name
% 'r' means read

format = '%d %f %f';
% The data information has two different types:
% d for integer based 10
% f for Floating-point number

sizeA = [3 Inf];
% 3 for only 3 lines
% Inf for read-to-end of line

A = fscanf( fileID, format, sizeA );
% save the information into A as the matrix format

fclose( fileID );

第4个回答  2014-01-24
你把数据放入到txt文档中。例如A=[数据]
在matlab中输入文件名,就会生成变量A,当中存储你的数据

matlab读取txt文件中的数据存为矩阵
1、打开一个txt文件,会发现他既有字符又有数值。2、此时将字符全部删除,只留下有用的数据数值。3、记住该文件夹的地址,一会要作为路径用于matlab读取。4、此时使用一个textread函数,函数内部代入刚才的txt文件路径。5、textread函数会把这些数据读成1为向量。我们将其分为两列,用x和y代表,保存为...

matlab怎么读取txt数据存放到矩阵中
matlab怎么读取txt数据存放到矩阵中 以Matlab R2012b为例。首先打开matlab;选择current folder并加入当前路径;选择指定的txt文件,右键,选择导入数据;选择相应的数据类型,这里应选matrix。

matlab怎样从文本txt文件中读入数据到矩阵
fid = fopen('480684994.txt','rt');if fid == 0, return, end% 读文件直到结束 while ~feof(fid)每次读入一行 s = fgetl(fid);% 以空格作为数据项的分隔符

在matlab中如何循环读取不同TXT文本里的数据到一个矩阵中
先result=[]for i=1:10 \/\/假如十个文件filename=''filename=str(i)+'.txt'y=load(filename)result=[result y]end

MATLAB中如何连续读TXT文本并放入到矩阵中???
filename.txt 存数据的文本文件,在当前路径一般指在work文件夹下.可以用绝对路径,比如:a=load('d:\\my\\filename.txt');运行后a中的数据即为文件中的数据.你的数据文本内容格式如下:1,2,3,4,5 6,7,8,9,10 ...除了逗号(,)也可以使用空格( )或者制表符(TAB键)等形式,那load进来就...

固定格式的数据txt文件,如何用MATLAB读取,并保存在矩阵中。
将你的数据(不带文字)列好,保存为shuju.txt(文件名随意),然后放在你保存MATLAB程序的文件夹中,程序中写load shuju.txt; a=shuju; 这样a就是你的数据矩阵了!

matlab读txt文件,并赋值给一个矩阵
a=dlmread('物理地址',' '); %%%将TXT导入到矩阵a中;format long g %%%显示长精度数据

MATLAB读取txt文件数据,
在MATLAB中,要读取txt文件的数据,首先打开软件,点击左上角的"文件"选项,然后选择"导入数据"。在弹出的对话框中,找到并选择你需要的txt文件,注意可以设置换行方式,如逗号分隔、空格分隔或是自定义格式,按照你的需求进行选择。点击"下一步"后,文件内容就会被转化为数据组,文件名即为数据组的名称...

求助:用MATLAB导出TXT文件里的数据,数据较多 要用到scroll bar_百度知 ...
1. 连续读取多个文件的数据,并存放在一个矩阵中:(1) 首先是如何读取文件名:方法一:filename=dir(‘*.jpg’);那么第i个文件的文件名就可以表示为 filename(i).name 文件数量为:length(filename)方法二:先在Windows的 MSDOS(命令行)中使用以下命令生成一个list.txt文件:dir path\\folder \/...

MATLAB怎样把固定格式的txt文件中的数据转换成矩阵
for ii =1:size(c,2) temp=zeros(3); temp([4,7,8])=c(ii,5:7); temp=temp+temp.'; temp([1,5,9])=c(ii,2:4); B{ii,1}=c(ii,1); B{ii,2}=temp;end其中B{m,1}就是第m个节点的编号B{m,2}就是第m个节点的矩阵,是3x3的对称矩阵 ...

相似回答