怎样将TXT中数据导入matlab中的二维数组 10
我有如下一个txt文件,其中第一~三行是文字,第四行是数据,需要将数据部分如所示导入matlab的一个矩阵中,N_grating=后面的数字(此例中为3)作为矩阵的行数,...
我有如下一个txt文件,其中第一~三行是文字,第四行是数据,需要将数据部分如所示导入matlab的一个矩阵中,N_grating=后面的数字(此例中为3)作为矩阵的行数,列数已固定,请问应该怎么做?
Position Length
mm mm 3 2 nm Pi
N_grating=3
3.4 4.6 6.9
3.0 6.5 5.0
4.5 8.9 3.0 展开
Position Length
mm mm 3 2 nm Pi
N_grating=3
3.4 4.6 6.9
3.0 6.5 5.0
4.5 8.9 3.0 展开
3个回答
展开全部
clear;
clc;
fidin=fopen('1.txt'); % 打开1.txt文件
fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件
i=1;
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读行
tmp=find(tline==','); % 判断首字符是否是逗号
l=length(tline);
a(i)=str2num(tline(2:tmp-1));
b(i)=str2num(tline(tmp+1:l-1));
i=i+1;
end
c=[a;b]';
以上代码本地测试通过。
另外,其实还有一个简单的方法,你何不打开txt,利用替换功能把“{”、“}”、“,”这三个符号都换成空格,这样就可以直接用load了,在数据规模大的时候,还是用load快啊。
clc;
fidin=fopen('1.txt'); % 打开1.txt文件
fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件
i=1;
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读行
tmp=find(tline==','); % 判断首字符是否是逗号
l=length(tline);
a(i)=str2num(tline(2:tmp-1));
b(i)=str2num(tline(tmp+1:l-1));
i=i+1;
end
c=[a;b]';
以上代码本地测试通过。
另外,其实还有一个简单的方法,你何不打开txt,利用替换功能把“{”、“}”、“,”这三个符号都换成空格,这样就可以直接用load了,在数据规模大的时候,还是用load快啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把前三行删除,然后用命令A=load('xxx.txt')就可以把数据读到数组A里了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
%用matlab将二维数组写入txt文件
%比方说 矩阵A 为
A=[1 2 3;4 5 6];
%那么程序 为
fid=fopen('A1.txt','w');
[b1 b2]=size(A);
for i=1:b1
for j=1:b2
fprintf(fid,'%10d',A(i,j));
end
fprintf(fid,'/n');
end
fclose(fid);
%比方说 矩阵A 为
A=[1 2 3;4 5 6];
%那么程序 为
fid=fopen('A1.txt','w');
[b1 b2]=size(A);
for i=1:b1
for j=1:b2
fprintf(fid,'%10d',A(i,j));
end
fprintf(fid,'/n');
end
fclose(fid);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询