matlab中读取txt数据文件(txt文本文档)

根据txt文档不同种类介绍不同的读取数据方法

一、纯数据文件(没有字母和中文,纯数字)

对于这种txt文档,从matalb中读取就简单多了

例如test.txt文件,内容为

17.901 -1.1111 33.045
17.891 -1.1286 33.045
17.884 -1.1345 33.045

可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。

二、中英文和数据如test1.txt

你好
欢迎来到
论坛
edu.cn
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555


这样的文件怎么读入数据呢?
方法有多种,现举两个比较简单实用的。

方法一:
file/import data....../next/finish
>> whos
Name           Size                   Bytes Class

data           5x4                      160 double array
textdata       4x1                      300 cell array

Grand total is 54 elements using 460 bytes

>> data

data =

           1          11         111        1111
           2          22         222        2222
           3          33         333        3333
           4          44         444        4444
           5          55         555        5555

>> textdata

textdata =

    '你好'
    '欢迎来到'
    '论坛'
    'edu.cn'

方法二:
[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。
这里%s的个数和[a1,a2,a3,a4]对应。
>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)

a1 =

    '1'
    '2'
    '3'
    '4'
    '5'

a2 =

    '11'
    '22'
    '33'
    '44'
    '55'

a3 =

    '111'
    '222'
    '333'
    '444'
    '555'

a4 =

    '1111'
    '2222'
    '3333'
    '4444'
    '5555'
因以字符串的形式读入,所以有''。
————————————————————————————————

三、中文 数据 英文 混乱如test.txt

你好
1 11 111 1111
欢迎来到
2 22 222 2222
论坛
3 33 333 3333
edu.cn
4 44 444 4444
5 55 555 5555

说明:这种内容格式的文件用上面的方法是不行的。

以下是由chinamaker编写的一种方法:

fidin=fopen('test.txt');                               % 打开test2.txt文件            
fidout=fopen('mkmatlab.txt','w');                       % 创建MKMATLAB.txt文件
while ~feof(fidin)                                      % 判断是否为文件末尾              
    tline=fgetl(fidin);                                 % 从文件读行  
    if double(tline(1))>=48&&double(tline(1))<=57       % 判断首字符是否是数值
       fprintf(fidout,'%s\n\n',tline);                  % 如果是数字行,把此行数据写入文件MKMATLAB.txt
       continue                                         % 如果是非数字继续下一次循环
    end
end
fclose(fidout);
MK=importdata('MKMATLAB.txt');      % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来
>> MK

MK =

           1          11         111        1111
           2          22         222        2222
           3          33         333        3333
           4          44         444        4444
           5          55         555        5555

---------------------------------------------------------------

我的txt数据里既有数字又有字符串,形式为:
0.129515 DDAA  01  2.24609 94.50000  98
0.130434 DDAA  01  2.24609 96.30000  9A
0.131441 DDAA  01  2.24609 97.20000  9B
0.132448 DDAA  01  2.24609 99.00000  9D
0.133507 DDAA  01  2.24609 100.80000  9F
0.134515 DDAA  01  2.24609 101.70000  A0
............
我只想要第一列,第四列,第五列。
也就是0.129515    2.24609    94.50000 这3列数,
怎样导入matlab啊?

 

假设数据在data.txt里,且位于当面matlab路径里,用下面这句就可以了
[col1,col2,col3]=textread('data.txt','%f %*s %*d %f %f %*s',-1);
---------------------------------------------------------------

http://hi.baidu.com/youngbrave/blog/item/878db31fcd4f220f304e15bb.html

转载于:https://www.cnblogs.com/emanlee/archive/2012/02/24/2365995.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434642.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu默认root密码

安装完Ubuntu后忽然意识到没有设置root密码&#xff0c;不知道密码自然就无法进入根用户下。到网上搜了一下&#xff0c;原来是这麽回事。Ubuntu的默认root密码是随机的&#xff0c;即每次开机都有一个新的root密码。我们可以在终端输入命令 sudo passwd&#xff0c;然后输入当…

java $和$$的区别_Java #{}和${}区别

Mybatis中使用#{}可以防止sql注入#{}: 表示一个占位符号,实现向PreparedStatement占位符中设置值(#{}表示一个占位符?),自动进行Java类型到JDBC类型的转换(因此#{}可以有效防止SQL注入).#{}可以接收简单类型或PO属性值,如果parameterType传输的是单个简单类型值,#{}花括号中可…

基于xml技术的操作

Xml是一种存放文件的一个文件格式&#xff0c;在程序的开发中应用很广泛&#xff0c;下面就来看看如何通过DOM的方式处理Xml格式的数据。DOM(Document Object Model,文档对象模型)&#xff0c;DOM是处理Xml数据的国际通用数据模型&#xff0c;由于Xml以元素为单位&#xff0c;就…

half-sync/half-async 和 Leader/Followers 模式的主要区别

在 《POSA2》 一书中&#xff0c;关于这两个模式有两个很形象的比喻&#xff1a;半同步/半异步&#xff08;half-sync/half-async&#xff09;&#xff1a;许多餐厅使用 半同步/半异步 模式的变体。例如&#xff0c;餐厅常常雇佣一个领班负责迎接顾客&#xff0c;并在餐厅繁忙时…

JAVA中的IO系统详解

Java 流在处理上分为字符流和字节流。字符流处理的单元为 2 个字节的 Unicode 字符&#xff0c;分别操作字符、字符数组或字符串&#xff0c;而字节流处理单元为 1 个字节&#xff0c;操作字节和字节数组。 Java 内用 Unicode 编码存储字符&#xff0c;字符流处理类负责将外部…

将Linux下编译的warning警告信息输出到文件中

Linux中&#xff0c;脚本语言环境中&#xff0c;即你用make xxx即其他一些普通 linux 命令&#xff0c;比如ls&#xff0c;find等&#xff0c;不同的数字&#xff0c;代表不同的含义&#xff1a; 数字 含义标准叫法0标准输入stdin standard input1标准输出stdout standard o…

java 内部编码_Java 中文编码分析

一、charAt 与 codePonitAt我们知道 Java 内部使用的是 utf-16 作为它的 char、String 的字符编码方式&#xff0c;这里我们叫它内部字符集。而 utf-16 是变长编码&#xff0c;一个字符的编码被称为一个 code point&#xff0c;它可能是 16 位 —— 一个 code unit&#xff0c;…

Framework1.1 DataView 转DataTable

因为Framework2.0开始DataView 有toTable()方法&#xff0c;可以直接转。但vs2003还是Framework1.1 没有这个方法。 所以要手动转&#xff0c;方法如下&#xff1a; public static DataTable CreateTable(DataView obDataView) { if (null obDataView) …

leetcode mysql 排名_(LeetCode:数据库)分数排名

编写一个 SQL 查询来实现分数排名。如果两个分数相同&#xff0c;则两个分数排名(Rank)相同。请注意&#xff0c;平分后的下一个名次应该是下一个连续的整数值。换句话说&#xff0c;名次之间不应该有“间隔”。-----------| Id | Score |-----------| 1 | 3.50 || 2 | 3.65…

Windows 8 JavaScript Metro应用程序--入门(上)

Windows 8 JavaScript Metro应用程序--入门&#xff08;上&#xff09; 如你所知的Windows8允许你通过以下几种方式创建Metro应用程序&#xff1a; CC# JavaScript第一部分将侧重于主体结构和JavaScript Grid 应用程序的基础&#xff0c;在随后的文章中我将深度探究在Windows8中…

内核编译(make)

内核编译&#xff08;make&#xff09;之后会生成两个文件&#xff0c;一个Image&#xff0c;一个zImage&#xff0c;其中Image为内核映像文件&#xff0c;而zImage为内核的一种映像压缩文件&#xff0c;Image大约为4M&#xff0c;而zImage不到2M。 那么uImage又是什么的&#…

cobol to java_cobol to java

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼(a) Javaソースプログラムの作成COBOLプログラムを呼び出すJavaプログラムでは&#xff0c;次の三つのJavaソースファイルを作成する必要があります。mainメソッドを含むJavaプログラム(Javaクラス)COBOLプログラムに対応するJava…

Elf

机器执行的是机器指令&#xff0c;而机器指令就是一堆二进制的数字。高级语言编写的程序之所以可以在不同的机器上移植就因为有为不同机器设计的编译器的存在。高级语言的编译器就是把高级语言写的程序转换成某个机器能直接执行的二进制代码。以上的知识在我们学习CS(Computer …

python教程闭包_Python教程 闭包的特性

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~闭包(closure)是函数式编程的重要的语法结构。函数式编…

直接打印报表

在ax中有时可能需要在打印时&#xff0c;不显示报表的预览与设置窗口&#xff0c;而是直接Send到打印机。可以使用ClassFactory、PrintJobSettings、ReportRun来完成。 static void NJ_MF_DirectPrint(Args _args) { Args args new Args(); ReportRun …

如何构建自己的SIP SERVER!

如果你下载了 sip phone, 自己又做了一个 SIP SERVER,那么你就可以当老大了&#xff0c;不要什么MSN&#xff0c;QQ的语音通话了&#xff0c;自己就可以直接同你想要的人通话了。1&#xff1a;软件准备&#xff1a;A: SIP SERVER http://www.brekeke.com/en/download/idx_sipse…

java java.lang_Java之java.lang.IllegalMonitorStateException

今天又中彩了, 原本很简单的多线程程序, 蓦然间冒了个"java.lang.IllegalMonitorStateException" , 杀了个措手不及. 一直纳闷, 为什么为什么? 查资料说该异常由于对象未获取得到Lock就试图操作Lock. 再细细源码, 原来不不小将lock.lock()写错为lock.tryLock(). 坑爹…

CruiseControl.NET ----- mail 配置

最近在用 CruiseControl.NET实现每日构建&#xff0c;其他配置起来都挺方便&#xff0c;就是在邮件设置上费了不少时间,我用的是CC.NET1.6,这个版本已经支持发送附件&#xff0c;如果使用外部邮箱&#xff0c;记得要把邮箱的smtp功能打开&#xff0c;下面是Mail配置的一个例子&…

java编程字_Java编程基本概念

1.标识符①用于给变量、类和方法命名(类名首字母大写&#xff0c;变量和方法名首字母小写并遵循驼峰原则)②标识符的命名规范&#xff1a;■标识符必须以字母、下划线和美元符$开头。■标识符其他部分可以是字母、下划线、美元符和数字的任意组合。■Java标识符大小写敏感&…

ubuntu gedit出错:Failed to connect to the session manager

刚才用su到root后&#xff0c;用命令gedit发现会出错&#xff1a;** (gedit:2976): WARNING **: 连接已关闭(gedit:2976): EggSMClient-WARNING **: Failed to connect to the session manager:None of the authentication protocols specified are supported** (gedit:2976): …