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

将文件中的数据存到一个矩阵A中。从facetnormal到endfacet都是一样的,每个文件有很多个这样的循环。A=[-1,0,0;0,100,100;0,100,0;... 将文件中的数据存到一个矩阵A中。从facet normal到endfacet都是一样的,每个文件有很多个这样的循环。
A=[-1,0,0;
0,100,100;
0,100,0;
0,0,0;]
展开
 我来答
刺友互
高粉答主

2019-09-27 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:69.7万
展开全部

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

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

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

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

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

du瓶邪
推荐于2016-12-01 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2869万
展开全部
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dukinkin
推荐于2017-12-16 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:913万
展开全部
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已经是所有数据组成的行向量

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

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Miafifi
2015-08-07 · TA获得超过451个赞
知道小有建树答主
回答量:277
采纳率:93%
帮助的人:170万
展开全部

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.

  1. 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 );
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-01-24
展开全部
你把数据放入到txt文档中。例如A=[数据]
在matlab中输入文件名,就会生成变量A,当中存储你的数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式