数据导入问题(如何把txt导入mat中)
1.860936 -0.2073831.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=;
end
fclose(fil)
这个程序,导入数据和直接import data没有区别,在mat中没有保留空行。请问如何改进才能保证空行保留在mat中呢?
1.好奇问下, 为何要保留空行, 有何用途
2.何谓空行?? double array裡头可以有空行吗?
3.一定要用double array吗?
回复 2 # ChaChing 的帖子
所有的数据是一组大样本,空行隔开,分成许多小样本,要计算每个小样本的协方差,导入的数据如果全部连在了一起,就区分不了小样本了。 回复 3 # 蓝莲花000 的帖子
建议考虑使用cell或struct
或考虑不必一次导入(边导入边处理), 或使用3-D array ...
依LZ实际问题取决
回复 4 # ChaChing 的帖子
“当matlab 一行一行的读时,要么读到字符串,要么读到‘ ’,读到字符串就叠加在一个矩阵里,直到读到读到‘ ’,此时立马输出该矩阵为一个样本,然后再重复这一过程,直到文末”这样的过程怎么完成呢?如果不用cell或struct,cell有个问题,导入到mat中后不是数值型,还有有个转换,但是好像没有cell2num。本人菜鸟,不知能否详细指点,非常感谢! 重申下double array裡头可以有空行吗? 个人水平有限, 真没能完全看懂LZ要的!
猜想LZ的疑点在is*的使用, LZ逐步试试下并比较其差异
还有LZ资料的分隔请自行确定是空白(char)或回车
>>
ans =
1 1 1
>>
ans =
0 1 0
>>
ans =
0 1 1
结果显示
1.不管数字,空白或回车, ischar都为成立, 所以无法判别差异
2.若是回车, isempty可以判别与数字的差异
3.不管空白或回车, isempty(str2num可以判别与数字的差异
..同样的疑问求解 hwcao_Love 发表于 2012-3-31 10:06 static/image/common/back.gif
..同样的疑问求解
6F有没试过? 解释不够清楚? 没释疑吗?:@) 水平不足,无法讨论啊。
页:
[1]