精华内容
下载资源
问答
  • matlab读写txt文件

    2019-07-22 19:20:41
    一些简单的读写,记录一下,免得自己忘记 写入 首先是根据时间,比如2014年12月8日起至2015年12月8日止,分成10000个时间段,用matlab的datanum之类的做,算出来的是"yyyymmddHHMMSS"的double形式。输入文件要求是...

    一些简单的读写,记录一下,免得自己忘记

    写入

    首先是根据时间,比如2014年12月8日起至2015年12月8日止,分成10000个时间段,用matlab的datanum之类的做,算出来的是"yyyymmddHHMMSS"的double形式。输入文件要求是20141108060000,这样的整型,但是用for循环一个一个去改是不行的。直接用数组函数 time_int=arrayfun(@uint64,time);

     

    time改好后,把time和坐标文件都写入一个txt,形式如下

    第一列是uint64类型的时间,后面三列是float类型的x,y,z坐标,中间用空格分开

    写入代码(我有很多组不同的坐标数据,分为23个文件)

    数据成功写入,读数据直接用importdata()函数,非常方便

    展开全文
  • matlab 读写txt文件

    2014-12-17 17:16:00
    Matlab有着强大的数据处理功能,经常需要从... 你可以将txt的一些文本数据直接拷贝到matlab窗口,然后保存为mat文件,下次就可以直接采用load函数了。 (1)Load load 从Matlab的数据文件.mat中读取变量
    Matlab有着强大的数据处理功能,经常需要从外部文件读取数据或将数据写到外部文件。Matlab和外部文件进行数据交换相关的命令,个人目前了解到的有以下几种。
     (0)自己添加

      你可以将txt的一些文本数据直接拷贝到matlab窗口,然后保存为mat文件,下次就可以直接采用load函数了。


    (1)Load
    load 从Matlab的数据文件.mat中读取变量数据,也可以从.txt .dat等文件中读取数据。使用load命令读取数据以后在Matlab中数据变量和文件同名。例如使用“load data.txt”后数据变量名即为data。
    需要注意的是文件格式的不同,文件格式分为二进制格式和ASCII格式两种。如果是二进制格式的文件,可以使用load命令直接读取。但如果是ASCII格式的文件,需要保证数据是整齐的(每一行数据个数要一致),否则会出错。
     
    例:
    data.txt文件(ASCII格式)
    0 1
    1 2 3
    0
    使用“load data.txt”将会出错。
     
    data1.txt文件
    0 1 2
    1 2 3
    2 3 4
    使用“load data1.txt”能顺利读入3*3矩阵。
     
     
    和load相对应的写数据命令为save,一般存为.mat文件,save保存的文件格式为二进制格式。
     
    二进制和ASCII的区别
    从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。 
    ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为: 
    ASC码:00110101(5)   00110110(6)   00110111(7) 00111000(8) 共占用4个字节。ASCII码文件可在屏幕上按字符显示, 例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。由于是按字符显示,因此能读懂文件内容。 

    二进制文件是按二进制的编码方式来存放文件的。例如,数5678的存储形式为:00010110 00101110 (十进制5678转换成二进制)只占二个字节。二进制文件虽然也可在屏幕上显示,但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。因此也把这种文件称作“流式文件”。
     
    (2)importdata
    importdata根据文件名将数据导入到Matlab工作区。可以导入文件类型有很多,.txt .wav 等等。导入的数据(包括字符串和数值)以结构形式存放在工作区,可以使用whos命令来查看工作区的数据。
    importdata可以导入load不能读取的长短不一的ASCII文件。当文件中既包含字符串又包含数值,而且数值长度个数不一时,可以使用importdata命令。注意读取的数值矩阵列数以文件中数值第一行的列数为标准。
     
    例 test.txt
    This is a test.
    Start
    0 1 2
    1 2
    1 2 3 4
    运行A=importdata('test.txt')
    结果:
    A =
            data: [4x3 double]
        textdata: {2x1 cell}
     
    A.data =
         0     1     2
         1     2   NaN
         1     2     3
         4   NaN   NaN
     
    A.textdata =
        'This is a test.'
        'Start'
     
    另外,读取的字符串只能位于数值之前,位于数值之后的将被忽略。
     
    例:test.txt
    0 1 2
    1 2
    1 2 3 4
    End.
    运行A=importdata('test.txt')
    结果:
    A =
         0     1     2
         1     2   NaN
         1     2     3
         4   NaN   NaN
     
     
    除了importdata命令以外,还可以从菜单选项file-->import data...导入数据文件,效果和importdata命令一样。
     
    (3)fopen
    fopen打开一个文件并创建文件标识以供接下来的读写等操作。fopen命令本身不进行读操作。然后可以使用fscanf读取数据,根据需要对数据进行筛选编辑。
     
    例:读取字符串的方法
    data.txt
    0 1 2
    1 2 3
    1 2 3
    End.
     
    fid=fopen('data.txt');    %打开文件,创建文件标识
    A=fscanf(A,'%c');         %读取数据
    fclose(fid);              %关闭文件标识
    i=findstr(A,'End');       %查找标识
    B=A(1:i-3);               %提取数据,换行为2个字符
    C=str2num(B);             %将数据转换成数值矩阵
     
    结果:
    A =
    0 1 2
     
    1 2 3
     
    1 2 3
     
    注意其中str2num同样需要保证数值矩阵中列数一致,如果不一致,则结果为空。
     
    0 1 2
    1 2
    1 2 3
    End.
     
    结果C=[]
     
     
    例:读取行的方法
    fid1=fopen('data.txt');
    fid2=fopen('numbers.txt','w');
    while ~feof(fid1)
        aline=fgetl(fid1);
        if double(aline(1))>=48&&double(aline(1))<=57
            fprintf(fid2,'%s\n',aline);
            continue
        end
    end
    fclose(fid1);
    fclose(fid2);
     
    numbers.txt即为按行保存的数值文件

    还有另外的方法

    在MATLAB中,来读取和写入文本文件是很简单的事。下面,就来简单介绍下。如果有其他问题,请留言。

    一、读取文本文件

    思路:

    1、用fopen来打开一个文件句柄

    2、用fgetl来获得文件中的一行,如果文件已经结束,fgetl会返回-1

    3、用fclose来关闭文件句柄

    比如,TIM_Grid_Data.txt的内容如下:

    0.1 0.1 151.031 -12.3144 -29.0245 3.11285
    0.1 0.2 120.232 -2.53284 -8.40095 3.3348
    0.1 0.3 136.481 -0.33173 -22.4462 3.598
    0.1 0.4 184.16 -18.2706 -54.0658 2.51696
    0.1 0.5 140.445 -6.99704 -21.2255 2.4202
    0.1 0.6 127.981 0.319132 -29.8315 3.11317
    0.1 0.7 106.174 -0.398859 -39.5156 3.97438
    0.1 0.8 105.867 -20.1589 -13.4927 11.6488
    0.1 0.9 117.294 -11.8907 -25.5828 4.97191
    0.1 1 79.457 -1.42722 -140.482 0.726493
    0.1 1.1 94.2203 -2.31433 -11.9207 4.71119

    那么可以用下面的代码来读取该文本文件:

    fid=fopen('TIM_Grid_Data.txt','r');
    best_data=[];
    while 1
        tline=fgetl(fid);
        if ~ischar(tline),break;end
        tline=str2num(tline);
        best_data=[best_data;tline];

    end

    fclose(fid);

    这样文本文件中的内容就读入到了best_data中了。

    二、写入文本文件

    思路:

    1、用fopen打开一个文件句柄,但要用“w+”或“r+”等修饰符,具体参看help fopen

    2、用fprintf写入数据

    3、用fclose来关闭文件句柄

    比如下面的程序:

    fid=fopen('Data.txt','a+');
    fprintf(fid,'Hello,Tim\r\n');
    fprintf(fid,'http://blog.sina.com.cn/pengtim');
    a=rand(1,10);
    fprintf(fid,'%g\r\n',a);
    fclose(fid);

    打开Data.txt文件,可以看到:

    Hello,Tim
    http://blog.sina.com.cn/pengtim0.655741
    0.0357117
    0.849129
    0.933993
    0.678735
    0.75774
    0.743132
    0.392227
    0.655478
    0.171187

    所以,用MATLAB来进行操作文本文件是不是很简单啊。


    展开全文
  • Matlab读写txt文件小结

    2021-01-24 17:14:51
    汇总一下matlab 读/写文本方法 读文本 1.文本只包含数字、科学记数法; testfile.txt 文本内容如下 1 2 3 4 5 6 1,2,3 4,5,6 1,2;3 1e+2 1.32e+1 2e+2 1e+2 1.32e+1 2e+2 函数:推荐使用 load 函数,代码如下,空格...

    汇总一下matlab 读/写文本方法

    读文本

    1.文本只包含数字、科学记数法;

    testfile.txt 文本内容如下
    1 2 3
    4 5 6

    1,2,3
    4,5,6

    1,2;3

    1e+2 1.32e+1 2e+2
    1e+2 1.32e+1 2e+2

    函数:推荐使用 load 函数,代码如下,空格、逗号、分号隔开均可,要求数据列数一致。

    data = load('testfile.txt');
    

    输出为: 7 x 3 矩阵
    在这里插入图片描述

    2.文本只包含数据和字符串(不严格对齐)

    testfile.txt 文本内容如下:
    head 1
    head line 2
    1e+2 1.32e+1 2e+2
    1e+2 1.32e+1 2e+2
    1e+2 1.32e+1 2e+2

    使用 importdata、textscan 函数:

    % 从第3行开始读取数据,间隔符为空格,跳过前2行
    content= importdata('testfile.txt', ' ', 2); 
    data1 = content.data;
    

    importdata 可以自动区分字符和数字,并分别存储称为结构体,如下
    在这里插入图片描述

    fid = fopen('testfile.txt', 'r');
    % 从第3行开始读,然后合并
    % 如果是空格隔开的,一定不要添加分隔符
    cData = textscan(fid, '%f %f %f', 'HeaderLines', 2, 'CollectOutput', 1);  
    data2 = cData{1};  % 从元胞数组中提取数据
    fclose(fid);
    

    fopen打开文件到fid识别符,textscan识别出来的是cell数据类型,
    headline表示跳过的行数;CollectOutput表示是否需要把同一类(基于Matlab的分类法)数据放在一个向量中,1代表true。

    在这里插入图片描述

    3. 数据严格对齐[ 空格分开 ]

    testfile.txt 文本内容如下:
    head 1
    head line 2
    1e+2 1.32e+1 2e+2
    1e+2 1.32e+1 2e+2
    1e+2 1.32e+1 2e+2

    可以使用dlmread:

    data2 = dlmread('testfile.txt', ' ', 2, 0);
    

    严格对齐且分隔符为空格,可以使用上述函数。输出结果为矩阵,函数中:’ '中表示分隔符为空格,2 表示跳过前2行,0 表示跳过前0列
    在这里插入图片描述

    4. 数据严格对齐[ 逗号分开 ]

    testfile.txt 文本内容如下:
    head 1
    head line 2
    1e+2, 1.32e+1, 2e+2
    1e+2, 1.32e+1, 2e+2
    1e+2, 1.32e+1, 2e+2

    还可以使用csvread函数:

    data3 = csvread('testfile.txt', 2, 0);
    

    参数同理

    5. 数据混杂

    testfile.txt 文本内容如下:
    head 1
    head line 2
    1e+2, 1.32e+1, 2e+2
    1e+2, 1.32e+1, 2e+2
    1e+2, 1.32e+1, 2e+2
    content 1
    content 2
    1 2 3 4
    5 6 7 8

    可以使用 textscan 函数,注意%f, %s等要和数据个数与类型匹配;分两次读出数据;

    fid = fopen('testfile.txt', 'r');
    cData = textscan(fid, '%f %f %f', 'HeaderLines', 2, 'Delimiter', ',', 'CollectOutput', 1);   % 跳过前2行
    data1 = cData{1};
    fclose(fid);
    
    fid = fopen('testfile.txt', 'r');
    cData = textscan(fid, '%f %f %f %f', 'HeaderLines', 7, 'CollectOutput', 1);  
    data2 = cData{1};
    fclose(fid);
    

    6. 非矩形数据

    testfile.txt 文本内容如下:
    1 2 3
    4 5
    6
    同样地,使用 dlmread 函数,缺少部分自动补零

    data = dlmread('testfile.txt');
    

    7. 时间形式 [ 多个分割符 ]

    testfile.txt 文本内容如下:
    2020-4-13, 10:10:10.111 AM
    2020-4-14, 10:10:10.111 AM
    2020-4-15, 10:10:10.111 AM

    使用 textscan 函数,输出的为cell数据类型数据。注意数据个数和类型对齐

    fid = fopen('testfile.txt', 'r');   
    %'-,:'作分隔符
    A = textscan(fid, '%d %d %d %d %d %f %s','delimiter','-,:','CollectOutput',1);
    fclose(fid);
    

    在这里插入图片描述

    写文本

    1. 写数据

    % 保存数据、间隔tabs宽度、追加数据:
    a = 10*rand(5);
    % 科学计数法形式
    save('a.txt','a','-ascii');  % 保存为a文件
    save('a.txt','a','-ascii','-tabs');  % 保存为a文件,数据之间用Tab间隔
    save('a.txt','a','-append','-ascii','-tabs'); % 在a文件后追加内容
    
    % 追加,空一行,分隔符,精度
    dlmwrite('test.txt', a, '-append', 'roffset', 1, 'delimiter', '\t', 'precision', '%8.4f');
    
    % 逗号隔开
    csvwrite('csvlist.csv', a);  
    

    2. 写带有头文件的文本 / 追加文本,(可能也适用于 .dat文件)

    data = rand(2,4)
    fid=fopen('testfile.txt','wt'); % 注意'wt'参数重要
    fprintf(fid,'%s\n', 'head info'); % 头信息
    fprintf(fid,'%d  %10.4f  %10.4f  %10.4f\n', data);  % 写数据部分,注意个人和类型
    fclose(fid);
    
    % 在已经有的文件后追加,'at'
    line1 = [1 2 3 4];
    line2 = [1 2 3];
    line3 = [1 2];
    fid = fopen('test.txt', 'at');   % 注意'at'参数重要
    fprintf(fid, '%d %d %d %d\n', line1);
    fprintf(fid, '%d %d %d\n', line2);
    fprintf(fid, '%d %d\n', line3);
    fclose(fid);
    

    前后输出的结果见下图:
    在这里插入图片描述

    参考文献

    https://www.zhihu.com/search?type=content&q=matlab%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6

    https://www.zhihu.com/search?q=matlab%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6&utm_content=search_history&type=content

    展开全文
  • matlab读写txt文件中的数据并画图

    万次阅读 2011-08-10 16:55:16
    oclusion: 3D(Base frame): [ c2 c3 c4 ] = textread('zd3(x).txt',' %f %f %f ',102) ; plot3(c2,c3,c4,':.b'); axis([min(c2),max(c2),min(c3
     
    

    oclusion:
    3D(Base frame):
    [ c2 c3 c4 ] = textread('zd3(x).txt',' %f  %f  %f ',102) ;
    plot3(c2,c3,c4,':.b');
    axis([min(c2),max(c2),min(c3),max(c3),min(c4),max(c4)]);
    xlabel('x(mm)','FontWeight','bold');
    ylabel('y(mm)','FontWeight','bold');
    zlabel('z(mm)','FontWeight','bold');
    %title('ROBOT移动路线图','FontWeight','bold');
    text(c2(1),c3(1),c4(1),'\bullet\leftarrow 起始点')
    view(-80,10);
    grid on;
    axis square;
    legend('ROBOT移动路线')


    3D(camera frame):
    [ c1 c2 c3 c4 ] = textread('zd2(y).txt','%2d  %8d  %8d  %8d ',96) ;
    t=1:1:96;
    plot3(t,c2,c3,':.b');
    axis([1,96,-400,400,-400,400]);
    xlabel('Z(帧)','FontWeight','bold');
    ylabel('x(mm)','FontWeight','bold');
    zlabel('y(mm)','FontWeight','bold');
    text(t(1),c2(1),c3(1),'\bullet\leftarrow 起始点')
    view(80,10);
    grid on;
    axis square;
    legend('相机测定的小球路线')

     


    reentry:

    3D(Base frame):
    [ c2 c3 c4 ] = textread('zr3(x).txt',' %f  %f  %f ',129) ;
    plot3(c2,c3,c4,':.b');
    axis([min(c2),max(c2),min(c3),max(c3),min(c4),max(c4)]);
    xlabel('x(mm)','FontWeight','bold');
    ylabel('y(mm)','FontWeight','bold');
    zlabel('z(mm)','FontWeight','bold');
    %title('ROBOT移动路线图','FontWeight','bold');
    text(c2(1),c3(1),c4(1),'\bullet\leftarrow 起始点')
    view(-80,10);
    grid on;
    axis square;
    legend('ROBOT移动路线');

     

    3D(camera frame):
    [ c1 c2 c3 c4 ] = textread('zr2(y).txt','%2d  %8d  %8d  %8d ',96) ;
    t=1:1:96;
    plot3(t,c2,c3,':.b');
    axis([1,96,-400,400,-400,400]);
    xlabel('Z(帧)','FontWeight','bold');
    ylabel('x(mm)','FontWeight','bold');
    zlabel('y(mm)','FontWeight','bold');
    text(t(1),c2(1),c3(1),'\bullet\leftarrow 起始点')
    view(80,10);
    grid on;
    axis square;
    legend('相机测定的小球路线')

    展开全文
  • matlab读写xlsx文件和txt文件

    千次阅读 2019-12-11 22:58:45
    matlab读写xlsx文件和txt文件
  • Matlab读写.txt文件内容

    万次阅读 2017-10-09 19:18:56
    工作和学习中,经常需要我们读取大量的txt等文本文件,这里面可能有数据和字符[1],本文通过一个代码示例(测试用.txt文件matlab代码文件下载网站:http://download.csdn.net/download/zhouxianen1987/10012733 )...
  • MATLAB读写txt文件

    万次阅读 2018-08-02 21:55:29
    读取 使用textread函数,具体示例如下: s = textread('E:\Project\documents\data.txt');   ...使用fopen+fprintf函数,具体...fid=fopen('D:\Documents\MATLAB\data.txt','w'); fprintf(fid,'%d',data);  ...
  • matlab 读写txt文本文件的方法

    千次阅读 2011-02-20 16:48:00
    matlab示例语句: [filename, date, timestamp, direction, dayornight, weather, startframe, numframes, class] = textread('info.txt', ... '%s %s %s %s %s %s %s %s %s', -1);   ...
  • #include &lt;fstream&gt; #include &lt;iostream&gt;...1.txt");//读入 for(int i=0;i&lt;10;i++) in&gt;&gt;a[i]; for(int i=0;i&lt;10;i++) cou...
  • 1、Matlab按照二进制读txt文件 data = textread('...\file.txt','%s');%二进制读 2、Matlab按照二进制写txt文件 fid = fopen('...\file.txt','wb');%按照二进制写打开文件 fprintf(fid,'%s\r\n',data(i));%将...
  • 使用matlab读取txt参考文件 供自己使用
  • 此篇博客记录了用Matlab 读写各种文件的方法及示例,惊喜正在酝酿... 目前有文本文件(以txt为例),图片文件(png, jpg, tif, gif, bmp),nc,excle
  • MATLAB读写文件操作

    2020-12-07 08:32:24
    MATLAB文件操作总说打开win平台应用程序(类似dos操作)load 和 save的各种操作txt文件读写函数xls文件读写函数 总说 MATLAB作为工科生常用的编程软件,能方便的读写txt、excel、图片、音频文件。 打开win平台应用...
  • Matlab 读写文件

    千次阅读 2017-09-11 22:32:51
    一、读取文本文件 思路: 1、用fopen来打开一个文件句柄 2、用fgetl来获得文件中的一行,...比如,read.txt的内容如下: 0.1 0.1 151.031 -12.3144 -29.0245 3.11285 0.1 0.2 120.232 -2.53284 -8.40095 3.3348 0.1 0.3
  • 在程序开始读入.txt文件中的参数值,在程序运行结束后将调整的参数存入这个txt文档中,以供下次使用。 实现: 1. 将参数存在txt文档,格式如下: 每行列出一个参数,并且以参数值、逗号、参数名的格式,即:...
  • find的例子 * Part IIverilog文件的读写 matlab和verilog文件的读写 Part Imatlab文件的读写 matlab读写文件的过程 * matlab 文件的打开和关闭 二进制文件.bin的读写 文本文件.txt的读写 读写的定位 *MAT文件的读写 ...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 186
精华内容 74
关键字:

matlab读写txt文件

matlab 订阅