声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2468|回复: 8

[编程技巧] 数据导入问题(如何把txt导入mat中)

[复制链接]
发表于 2012-3-26 21:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
1.860936 -0.207383
1.891651 -0.193249

1.939205 -0.239664  
1.717517 -0.218572
0.217119 -0.228186

-0.156232
-0.412961
0.164607 -0.323267
-0.210105 0.098098
这里有一组小数据,存在tmp.txt文件中,现在想把他们导入mat文件中,而且导入mat以后,依然保留他们之间的空行。以下是我的程序
pwd;
fil=fopen('tmp.txt');

b=[];
while 1
    a=fgetl(fil);
     if ~ischar(a),break,end
        disp(a);
    b=[b;str2num(a)];
   
end
fclose(fil)
这个程序,导入数据和直接import data没有区别,在mat中没有保留空行。请问如何改进才能保证空行保留在mat中呢?
回复
分享到:

使用道具 举报

发表于 2012-3-27 01:03 | 显示全部楼层
1.好奇问下, 为何要保留空行, 有何用途
2.何谓空行?? double array裡头可以有空行吗?
3.一定要用double array吗?
 楼主| 发表于 2012-3-27 19:24 | 显示全部楼层
回复 2 # ChaChing 的帖子

所有的数据是一组大样本,空行隔开,分成许多小样本,要计算每个小样本的协方差,导入的数据如果全部连在了一起,就区分不了小样本了。
发表于 2012-3-28 01:51 | 显示全部楼层
回复 3 # 蓝莲花000 的帖子

建议考虑使用cell或struct
或考虑不必一次导入(边导入边处理), 或使用3-D array ...
依LZ实际问题取决
 楼主| 发表于 2012-3-28 09:28 | 显示全部楼层
回复 4 # ChaChing 的帖子

“当matlab 一行一行的读时,要么读到字符串,要么读到‘ ’,读到字符串就叠加在一个矩阵里,直到读到读到‘ ’,此时立马输出该矩阵为一个样本,然后再重复这一过程,直到文末”这样的过程怎么完成呢?如果不用cell或struct,cell有个问题,导入到mat中后不是数值型,还有有个转换,但是好像没有cell2num。本人菜鸟,不知能否详细指点,非常感谢!
发表于 2012-3-30 00:42 | 显示全部楼层
重申下double array裡头可以有空行吗? 个人水平有限, 真没能完全看懂LZ要的!
猜想LZ的疑点在is*的使用, LZ逐步试试下并比较其差异
还有LZ资料的分隔请自行确定是空白(char)或回车
>> [ischar('1.860936 -0.207383') ischar('') ischar(' ')]

ans =

     1     1     1

>> [isempty('1.860936 -0.207383') isempty('') isempty(' ')]

ans =

     0     1     0

>> [isempty(str2num('1.860936 -0.207383')) isempty(str2num('')) isempty(str2num(' '))]

ans =

     0     1     1

结果显示
1.不管数字,空白或回车, ischar都为成立, 所以无法判别差异
2.若是回车, isempty可以判别与数字的差异
3.不管空白或回车, isempty(str2num可以判别与数字的差异
发表于 2012-3-31 10:06 | 显示全部楼层
..同样的疑问求解
发表于 2012-3-31 13:16 | 显示全部楼层
发表于 2012-7-19 08:34 | 显示全部楼层
水平不足,无法讨论啊。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-21 02:36 , Processed in 0.070083 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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