声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3106|回复: 8

[共享资源] 批量读取文本中有用的数据的程序(转贴)

[复制链接]
发表于 2007-10-12 15:12 | 显示全部楼层 |阅读模式

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

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

x
本文是转贴,大家一起讨论一下,我本打算把注释汉化一下,想想还是原汁原味的好些
用好MATLAB有个非常关键的因素:与外部程序的数据交互。这些外部程序非常多,举例来说像电子表格程序EXCELL、数据可视化程序TECPLOT、文本处理程序NOTPAD以及其他科学计算程序(比如运筹规划程序LINGO)等。用到的函数主要有这些:load/save,fopen/fread/fwrite/fgetl/fgets,xlsinfo/xlsread/xlswrite,textread/textscan/dlmread/csvread/strread等,仔细阅读并练习用好这些函数是非常基本的MATLAB技能,下面通过一个例子来演示如何用好适当函数处理一系列的文本文件。
问题:现在手头有四十个某程序产生的文本文件,每个文件有五行,其中第四、五行有我们感兴趣的数据,现在希望编写M脚本来自动地提取并处理这些数据,比如生成数据分布曲线等。
解决方案:使用
dir函数获取所有文本文件名结构体,然后循环处理相应文件数据。
M脚本:
clear all,clc
P=dir('extracted_data/Kurtosis'); N=size(P,1);   %get the text file structure
Kdata_ICorder=[]; Kdata_ICkurt=[]; %predefine needed matrice
%operate dataset looply
for k=1:N-2
    fn_tmp=strcat('extracted_data\Kurtosis\',P(k+2).name); fid=fopen(fn_tmp);
    %read in five lines
    tline1 = fgetl(fid); tline2 = fgetl(fid); tline3 = fgetl(fid);
    tline4 = fgetl(fid); tline5 = fgetl(fid); fclose(fid);
    %inter-active swap data
    tmp=strread(tline4(17:end-1));
    Kdata_ICorder(k,: )=tmp(1:20); Kdata_ICkurt(k,: )=strread(tline5(15:end-1));
end
%following, you can do your data analysis...

                               
登录/注册后可看大图


这帖真是强悍,刚好能解决我的问题,佩服的五体投地

[ 本帖最后由 ChaChing 于 2009-5-4 08:03 编辑 ]

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2007-10-12 16:36 | 显示全部楼层
辛苦了,不过这些在我写的精华贴就有介绍

[ 本帖最后由 ChaChing 于 2010-7-30 15:35 编辑 ]
 楼主| 发表于 2007-10-12 21:13 | 显示全部楼层
以后多看精华,关键是找到dir函数了,我要找的就是他
发表于 2007-10-15 13:23 | 显示全部楼层
忘了用size可以,呵呵,不好意思。
发表于 2008-3-26 20:58 | 显示全部楼层
好东西,学习了!
发表于 2008-4-1 23:01 | 显示全部楼层
有参考价值,收藏
发表于 2008-6-5 15:38 | 显示全部楼层
怎样读入一个文件夹里面的文件?比如是bmp图像,都存在文件夹Mybmp中,怎么全部读进来啊?
发表于 2009-5-4 00:17 | 显示全部楼层
mark, thank you:@)
发表于 2010-9-27 15:23 | 显示全部楼层
学习了,我用数据之前都是一个文件一个文件的打开~
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-18 11:03 , Processed in 0.103621 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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