matlab txt文档读取

下面这个函数是取filein中的第line行写入fileout中的程序,如果想实现取特定几行,只要稍微修改一下就可以。 
function dataout=dataread(filein,fileout,line)

  fidin=fopen(filein,‘r‘);

  fidout=fopen(fileout,‘w‘);

  nline=0; 
  while ~feof(fidin) % 判断是否为文件末尾

    tline=fgetl(fidin); % 从文件读行

    nline=nline+1; if nline==line 
    fprintf(fidout,‘%s\n‘,tline);

    dataout=tline;

  end

end 
fclose(fidin);

fclose(fidout); 
%%%%%%%%%%%%%%%%%%%%%%%%%% 
调用格式:dataout=dataread(filein,fileout,line) 如果你的txt文件数据是矩阵形式的,而没有其它的文字,用下面的程序就可以读任意行任意列的数据 a=textread(‘ll.txt‘); t=a(1:43,4:10); 
1:43是1到43行,4:10是4到10列的数据,当然也可以只读一个数据,如果你的matlab没有textread函数,直接从mathworks网站下载就行

 

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

对于这种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

“你好
欢迎来到
振动论坛
vib.hit.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 =

‘你好‘
    ‘欢迎来到‘
    ‘振动论坛‘
    ‘vib.hit.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
vib.hit.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

from:http://www.360doc.com/content/12/0307/22/9053144_192599269.shtml

matlab txt文档读取,布布扣,bubuko.com

时间: 2024-10-08 19:35:01

matlab txt文档读取的相关文章

C++ txt文档读取

void readfile(string filepath){ ifstream myfile; if (!myfile) { cout << "打开文件出错!"; exit(1); }else{ myfile.open(filepath); string ss; while(getline(myfile,ss))//着行读取数据并存于s中,直至数据全部读取 { cout<<ss<<endl; } system("pause");

用python从符合一定格式的txt文档中逐行读取数据并按一定规则写入excel(openpyxl支持Excel 2007 .xlsx格式)

前几天接到一个任务,从gerrit上通过ssh命令获取一些commit相关的数据到文本文档中,随后将这些数据存入Excel中.数据格式如下图所示 观察上图可知,存在文本文档中的数据符合一定的格式,通过python读取.正则表达式处理并写入Excel文档将大大减少人工处理的工作量. 1. 从gerrit获取原始信息,存入文本文档: $ssh –p 29418 <your-account>@192.168.1.16 gerrit query status:merged since:<date

VBS读取txt文档数据查找Excel中单元格数据符合条件的剪切到工作表2中

Dim fso,f,a set oExcel = CreateObject( "Excel.Application" ) oExcel.Visible = false '4) 打开已存在的工作簿: oExcel.WorkBooks.Open( "F:\1.xlsx" ) On Error Resume Next '判断是否存在Sheet2工作表,不存在新建 If oExcel.WorkSheets("Sheet2") Is Nothing The

用matlab查找txt文档中的关键字,并把关键字后面的数据存到起来用matlab处理

用matlab查找txt文档中的关键字,并把关键字后面的数据存到起来用matlab处理 我测了一组数据存到txt文件中,是个WIFI信号强度文档,里面有我们需要得到的数据,有没用的数据,想用matlab查找关键字(SSID),把关键字后面的数字存起来用作后期处理分析,如下图,把ky后面的信号强度数据(那个负数)弄出来.求大神指点应该怎么办,或给程序,谢谢! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 fn = 'my_data.txt'; fid = fo

txt文档的读取和写入

下面介绍一种用于持久化存储数据的简单的方式:通过txt文档进行数据的持久化存储,我们可以通过txt文档的方式存储保存的内容数据,也可以存储相应的配置信息的数据,这些我们都可以通过txt文档的方式进行存储, 只有持久化的数据才能更加利于我们每次查看数据更加的直观,同时每次修改数据也更加容易,今天我们介绍一些txt文档存储数据的方法: 下面代码主要用于进行txt文档内容的写入和读取: //这个方法的作用是读取txt文档中的内容 public string ReadTxt(string FileNam

WebService 实现BS环境与BS环境传递参数,根据参数生成txt文档

客户端: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Client.aspx.cs" Inherits="客户端.Client" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head runat="ser

统计txt文档中的单词个数

public class Bean { private char name; private double pinlv; public Bean(char name,double pl) { this.name=name; this.pinlv=pl; } public char getName() { return name; } public void setName(char name) { this.name = name; } public double getPinlv() { re

将txt文档按行分割

昨天遇到了一个需求,需要将txt文档按行分割,并指定了行数, 最近在用python,就在网上搜了一下,在参考了http://blog.csdn.net/zhang_red/article/details/9055965这个帖子后,准备自己改一下 发现原帖代码似乎有点问题,改了下代码如下: # -*- coding: utf-8 -*- import os class SplitFiles(): """按行分割文件""" def __init__(

用PHP实现浏览器点击下载TXT文档的方法详解

[[注:其他文件想设置成下载文件,和下面介绍的方法一致]] 由于现在的浏览器已经可以识别txt文档格式,如果只给txt文档做一个文字链接的话,点击后只是打开一个新窗口显示txt文件的内容,并不能实现点击下载的目的.当然这个问题的解决办法也可以是将txt文件改名为浏览器不认识的文件(比如rar),这样的话,由于浏览器不能识别rar类型的文件,只能让用户下载了.还有一种办法,就是利用代码通过header设置文档的格式来实现点击下载的目的. PHP代码如下:======================