找回密码
 注册
Simdroid-非首页
查看: 108|回复: 6

请问Matlab能够读取没有分隔符的数据吗?

[复制链接]
发表于 2012-11-8 02:07:52 | 显示全部楼层 |阅读模式 来自 德国
Matlab新手上路,想请问一下,Matlab能读取无分隔符的数据吗?
数据如图1所示,图2中的第一行是我添加分号为分隔符后的数据。
谢谢各位大侠们



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2012-11-8 10:39:19 | 显示全部楼层 来自 江苏南京
Simdroid开发平台
你的数据里面不是有空格作为分隔符吗
回复 不支持

使用道具 举报

 楼主| 发表于 2012-11-8 16:29:08 | 显示全部楼层 来自 德国
ithinksoim 发表于 2012-11-8 10:39
你的数据里面不是有空格作为分隔符吗

数据里没有空格,那个间隔比较大的地方是小数点。
回复 不支持

使用道具 举报

发表于 2012-11-10 08:08:59 来自手机 | 显示全部楼层 来自 天津
字符串分割,再转换成数值
回复 不支持

使用道具 举报

 楼主| 发表于 2012-11-12 16:49:34 | 显示全部楼层 来自 德国
liuyalong008 发表于 2012-11-10 08:08
字符串分割,再转换成数值

请问字符串分割具体是哪个命令?
回复 不支持

使用道具 举报

 楼主| 发表于 2012-11-13 17:18:24 | 显示全部楼层 来自 德国
最后用了一种比较笨的方法读取了。
fid1=fopen('XX'); %读取原始数据文件
bb=textscan(fid1,'%13s',-1);  %数据写入bb,因原始数据每13个字符为一个数据,因此每13个字符存为一个字符串
for i=1:435
a(i,1:9)=bb{1,1}(5+11*i:13+11*i,1); %读取bb中第一列16-24行存入a中的第一行,27-35行存入a中第二行,a中一行有九列
end
[nrows,ncols]=size(a);
filename2='XXX.dat';
fid2=fopen(filename2,'w'); %打开记录新数据文件'XXX.dat'
fprintf(fid2,'     EEFFM       XANTNRX??Z……\n');%写入文件题头
for row=1:nrows
    fprintf(fid2,'%13s;%13s;%13s;%13s;%13s;%13s;%13s;%13s;%13s\n',a{row,:}); %a中每13个字符存入XXX.dat,分隔符为';'
end
fclose(fid2);%关闭'XXX.dat'
fclose(fid1);%关闭原始数据
cc=importdata('XXX.dat',';',1);%读取'XXX.dat'
data=cc.data;%读出数字格式的数据
转换后的数据如图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 不支持

使用道具 举报

发表于 2012-11-13 19:58:51 | 显示全部楼层 来自 英国
如果你会用PERL的话当然用PERL最好。
不太清楚你对结果文件的格式要求,不过在不调用PERL的情况下可以考虑结合cellfun和regexp.
  1. 3.1416E+003.1416E+013.1416E+033.1416E+04
  2. 3.1416E+053.1416E+063.1416E+073.1416E+08
复制代码


那大致可以这么处理:
  1. a=importdata('mytext.txt');
  2. b=regexp(a,'(\d.\d+E\S\d\d)','tokens');
  3. c=vertcat(b{:});
  4. ExtractedData=cellfun(@str2double,c);
复制代码

最后得到的结果ExtractedData是一个2x4的数字矩阵。

点评

复杂的格式用正则表达式较好  发表于 2012-11-14 14:07

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-30 09:59 , Processed in 0.038277 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表