matlab入门之------读写文本函数csvwrite,csvread,dlmwrite,dlmread

       刚开始学习matlab的时候,被它的强大功能震惊到了,但是嗫,那些发挥强巨大力量的函数看起来怎么那么奇怪(刚开始的感觉,毕竟接触一个事物都是从陌生到熟悉),比如很基本的读写文本的函数,csvwrite,csvread等。我有一个习惯,就是找到那些缩写的东西的全称,于是就有了这篇文章。本文不仅写出了标题中这几个函数的函数名的全称而且详细介绍了它们的功能。

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

                                                                                                                                                                              我是帅气的分割线

1.csvwrite 写入逗号分隔值文件,csv是comma separated values的缩写。

  语法与功能:  csvwrite(filename,M) 将矩阵 M 作为逗号分隔值写入 filename 中。将 filename 指定为字符向量或字符串,例如 'csvlist.dat' 或 "csvlist.dat"

         csvwrite(filename,M,row,col) 将矩阵 M 写入以指定行和列偏移开始的 filename 中。行和列参数从零开始,因此 row=0 和 C=0 指定文件中的第一个值。

 示例:

        以下示例根据矩阵 m 创建一个逗号分隔值文件。

    m = [3 6 9 12 15; 5 10 15 20 25; ...
         7 14 21 28 35; 11 22 33 44 55];

    csvwrite('csvlist.dat',m)
    type csvlist.dat

    3,6,9,12,15
    5,10,15,20,25
    7,14,21,28,35
    11,22,33,44,55

      下一个示例将矩阵写入从列偏移 2 开始的文件。

   csvwrite('csvlist.dat',m,0,2)
   type csvlist.dat

   ,,3,6,9,12,15
   ,,5,10,15,20,25
   ,,7,14,21,28,35
   ,,11,22,33,44,55

2.csvread 读取逗号分隔值 (CSV) 文件。

  语法与功能:  M=csvread(filename) 将逗号分隔值 (CSV) 格式化文件读入数组 M 中。该文件只能包含数值。

         M=csvread(filename,R1,C1) 从行偏移量 R1 和列偏移量 C1 开始读取文件中的数据。例如,偏移量 R1=0C1=0 指定文件中的第一个值。

                         M=csvread(filename,R1,C1,[R1 C1 R2 C2]) 仅读取行偏移量 R1 和 R2 及列偏移量 C1 和 C2 界定的范围。例如,偏移量R1=1,C1=0,R2=2,C2=2指定从文件读取行偏移量为1和2及列偏移量为0和2界定的矩阵。说通俗点,就是从文件中读取从第1行到第2行,第0列到第2列框定的元素组成一个新的矩阵,叫做M。(注意矩阵都是用数组存储的,起始行和列都是从0开始的)

  示例: M=csvread(filename读取整个CSV文件

             创建一个名为 csvlist.dat 的包含逗号分隔值的文件。

       02, 04, 06, 08
       03, 06, 09, 12
       05, 10, 15, 20
       07, 14, 21, 28
     
      读取文件中的数值。
     
      filename = 'csvlist.dat';
      M = csvread(filename)      

运行结果:M =

         2     4     6     8
         3     6     9    12
         5    10    15    20
         7    14    21    28

            M=csvread(filename,R1,C1从特定行和列偏移量开始读取 CSV 文件

           从上一个示例中描述的文件读取从第一行下方两行开始的矩阵。

      M = csvread('csvlist.dat',2,0)      

运行结果:M =

         5    10    15    20
         7    14    21    28

            M=csvread(filename,R1,C1,[R1 C1 R2 C2])  从 CSV 文件读取特定范围的数据

           从第一个示例中描述的文件读取行偏移量 1 和 2 及列偏移量 0 和 2 界定的矩阵。

      M = csvread('csvlist.dat',1,0,[1,0,2,2])     
      
运行结果:M =
         3     6     9
         5    10    15

 3.dlmwrite  将矩阵写入到 ASCII 分隔文件,dlm是delimiter的缩写。

 语法与功能: 

           dlmwrite(filename,M) 将数组 M 中的数值数据写入一个 ASCII 格式的文件 filename,并使用默认分隔符 (,) 分隔各数组元素。如果文件 filename 已存在,则 dlmwrite 将覆盖该文件。

    dlmwrite(filename,M,'-append') 将数据追加到现有文件 filename 的末尾。

    dlmwrite(___,Name,Value) 使用一个或多个名称-值对组参数另外指定分隔符、换行符、偏移量和精度选项。

    dlmwrite(filename,M,delimiter) 将数组 M 写入文件 filename,并使用指定分隔符 delimiter 分隔各数组元素。

    dlmwrite(filename,M,delimiter,row,col) 从目标文件中指定的第 row 行和第 col 列开始写入数组。前导行和列  用 delimiter 分隔的空元素填充。

4.dlmread  将 ASCII 分隔的数值数据文件读取到矩阵

 语法与功能: 

           M=dlmread(filename) 将 ASCII 分隔的数值数据文件读取到矩阵 Mdlmread 函数从该文件中检测到分隔符,并将重复的空白视为一个分隔符。

    M=dlmread(filename,delimiter) 使用指定的分隔符读取该文件中的数据,并将重复的分隔符视为单独的分隔符。

    M=dlmread(filename,delimiter,R1,C1) 从行偏移量 R1 和列偏移量 C1 开始读取。例如,偏移量 R1=0C1=0 指定文件中的第一个值。

要指定行和列的偏移量而不指定分隔符,请将空字符用作占位符,例如 M = dlmread(filename,'',2,1)

    M=dlmread(filename,delimiter,[R1 C1 R2 C2]) 仅读取行偏移量 R1 和 R2 及列偏移量 C1 和 C2 界定的范围。

示例:  M=dlmread(filename 读取整个带分隔符的文件   

          读取示例文件 count.dat

     M = dlmread('count.dat')     
     
运行结果: M = 14×3

    11    11     9
     7    13    11
    14    17    20
    11    13     9
    43    51    69
    38    46    76
    61   132   186
    75   135   180
    38    88   115
    28    36    55
    12    12    14
    18    27    30
    18    19    29
    17    15    18

      M=dlmread(filename,delimiter,R1,C1 从特定行和列偏移量开始读取带分隔符的文件

       创建一个名为 dlmlist.txt 的文件,其中包含列标题和空格分隔值。

   test max min direction
   10 27.7 12.4 12
   11 26.9 13.5 18
   12 27.4 16.9 31
   13 25.1 12.7 29  

       读取文件中的数值。指定空格分隔符、行偏移量 1 和列偏移量 0。

   filename = 'dlmlist.txt';
   M = dlmread(filename,' ',1,0)
   M =

   10.0000   27.7000   12.4000   12.0000
   11.0000   26.9000   13.5000   18.0000
   12.0000   27.4000   16.9000   31.0000
   13.0000   25.1000   12.7000   29.0000

      M=dlmread(filename,delimiter,[R1 C1 R2 C2]) 读取带分隔符的文件中的特定范围 

     创建一个名为 dlmlist.txt 的文件,其中包含列标题和空格分隔值。

  test max min direction
  10 27.7 12.4 12
  11 26.9 13.5 18
  12 27.4 16.9 31
  13 25.1 12.7 29  

     仅读取文件中最后两行的数值数据。

  M = dlmread('dlmlist.txt',' ',[3 0 4 3])
  M =

   12.0000   27.4000   16.9000   31.0000
   13.0000   25.1000   12.7000   29.0000

 

你可能感兴趣的:(matlab)