声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4078|回复: 7

[编程技巧] 求组:MATLAB数据批量读取问题。

[复制链接]
发表于 2007-5-17 23:17 | 显示全部楼层 |阅读模式

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

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

x
比如有很多个数据文件:asdf1.txt、asdf2.txt、asdf1-2.txt、asdf3.txt……
每个数据文件的格式如下

序号  数据1  数据2  附加数据
1 21 3 44
2 33 6 87
……


如何将这些数据文件一次批量读取,以方便对其进行均值方差等运算?
回复
分享到:

使用道具 举报

发表于 2007-5-17 23:27 | 显示全部楼层
搜索论坛.
 楼主| 发表于 2007-5-18 01:26 | 显示全部楼层
没找到相关的讨论呢,能帮忙给个链接?
发表于 2007-5-18 09:30 | 显示全部楼层
%读取当前工作文件夹所有文件
ww=struct2cell(dir);
%选择(单个文件进行处理)
t=ww(1,3);
%打开并读取
IFid=fopen(char(t),'rb');
speech = fread(IFid, 'int16');
执行文件
.............................
%关闭
fclose('all');
 楼主| 发表于 2007-5-19 21:53 | 显示全部楼层

关于matlab对数据文件批量读取的问题。

%读取当前工作文件夹所有文件
ww=struct2cell(dir);
%选择(单个文件进行处理)
t=ww(1,3);
%打开并读取
IFid=fopen(char(t),'rb');
speech = fread(IFid, 'int16');
执行文件
.............................
%关闭
fclose('all');


回去试了试,不行,是不是因为我的数据第一行为汉字的原因?
后来我用下面的程序可以读:
ww=struct2cell('E:\data\20070502');
t=ww(1,3)
fid=fopen(char(t),'rb');
temp=fgetl(fid);
data1=fscanf(fid,'%g',[12 inf]); %我的数据文件是12列


不过程序必须放在数据文件目录下,否则会出错,fid返回-1。
后来看了一下原来是因为char(t)仅仅返回了文件名称,没有路径。

问:fread如何用?第一断程序为什么我运行不下去?

[ 本帖最后由 eight 于 2007-5-19 23:28 编辑 ]
 楼主| 发表于 2007-5-20 11:09 | 显示全部楼层
还有一个问题:
struct2cell读取文件列表,文件是按照名称排列的,可不可以让文件明按照时间顺序形成数组呢?
发表于 2007-5-20 14:36 | 显示全部楼层

回复 #6 dykiamy 的帖子

为什么我执行上面的程序得到错误Function 'struct2cell' is not defined for values of class 'char'.
发表于 2007-5-20 23:12 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-24 09:24 , Processed in 0.070432 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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