matlab如何读取一行数据,从而进行处理?
展开全部
以取filein中的第line行写入fileout中的程序为例:
1、首先输入下方的代码:
function dataout=dataread(filein,fileout,line)
fidin=fopen(filein,'r');
fidout=fopen(fileout,'w');
nline=0;
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读行
2、然后输入下方的代码:
nline=nline+1;
if nline==line
fprintf(fidout,'%s\n',tline);
dataout=tline;
end
end
fclose(fidin);
fclose(fidout);
3、然后这样就完成了。
推荐于2017-10-14 · 知道合伙人互联网行家
关注
展开全部
txt文件如下,%在txt里是顶格写的
1
2 %A
3 11.2 222.5 3000
4
5 %B
6 100 200 300
7
8
9 %C
10 4800000 500000 60000000
format long %让matlab显示出很大的数比如 6000000000011.8,不会忽略掉11.2
fidin=fopen('123.txt'); %打开文件
while ~feof(fidin) %判断是不是文件末尾
tline=fgetl(fidin); %读取一行,注意,读文一行后,光标就会自动到下一行
if isempty(tline) %判断是不是空行
continue
end
switch tline(2) %对不是空行的判断这一行的第二个字符
case 'A' %如果是A的情况
tline=fgetl(fidin); %读取下一行的数据
str=tline; %先把这一行变为字符串
sline=sscanf(str,'%f',3); %读取字符串中的数据,最多读3个,三个字符自动转为数字类型
M=sline; %赋值给M
case 'B' %一下类似
tline=fgetl(fidin);
str=tline;
sline=sscanf(str,'%f',3);
M1=sline;
otherwise
tline=fgetl(fidin);
str=tline;
sline=sscanf(str,'%f',3);
M2=sline;
end
end
fclose(fidin);
a=M(1)+M2(3);
disp(a);
这里让11.2+60000000 结果是60000011.2
1
2 %A
3 11.2 222.5 3000
4
5 %B
6 100 200 300
7
8
9 %C
10 4800000 500000 60000000
format long %让matlab显示出很大的数比如 6000000000011.8,不会忽略掉11.2
fidin=fopen('123.txt'); %打开文件
while ~feof(fidin) %判断是不是文件末尾
tline=fgetl(fidin); %读取一行,注意,读文一行后,光标就会自动到下一行
if isempty(tline) %判断是不是空行
continue
end
switch tline(2) %对不是空行的判断这一行的第二个字符
case 'A' %如果是A的情况
tline=fgetl(fidin); %读取下一行的数据
str=tline; %先把这一行变为字符串
sline=sscanf(str,'%f',3); %读取字符串中的数据,最多读3个,三个字符自动转为数字类型
M=sline; %赋值给M
case 'B' %一下类似
tline=fgetl(fidin);
str=tline;
sline=sscanf(str,'%f',3);
M1=sline;
otherwise
tline=fgetl(fidin);
str=tline;
sline=sscanf(str,'%f',3);
M2=sline;
end
end
fclose(fidin);
a=M(1)+M2(3);
disp(a);
这里让11.2+60000000 结果是60000011.2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你这个数据是什么东西,假设这是X矩阵
取某一行数据的命令是X(i,:),表示取第i行数据
取某一行数据的命令是X(i,:),表示取第i行数据
追问
数据是电子水准仪数据文件,我想读取其高程值Z,其余都可以不要。
追答
不管是什么数据,导入到MATLAB后就是X矩阵了,想要哪部分数据都行
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询