[初学笔记] matlab中读取mat的数据

由于源代码是我自己的,所以选择了原创的分类


下面的功能是  转自 论坛回答 http://www.ilovematlab.cn/forum.php?mod=viewthread&tid=78257&page=1&authorid=250414


13.1 数据基本操作
  本节介绍基本的数据操作,包括工作区的保存、导入和文件打开。
13.1.1 文件的存储
  MATLAB支持工作区的保存。用户可以将工作区或工作区中的变量以文件的形式保存,以备在需要时再次导入。保存工作区可以通过菜单进行,也可以通过命令窗口进行。
  1. 保存整个工作区
  选择File菜单中的Save Workspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件。
  2. 保存工作区中的变量
  在工作区浏览器中,右击需要保存的变量名,选择Save As…,将该变量保存为MAT文件。
  3. 利用save命令保存
  该命令可以保存工作区,或工作区中任何指定文件。该命令的调用格式如下:
● save:将工作区中的所有变量保存在当前工作区中的文件中,文件名为 matlab.mat,MAT文件可以通过load函数再次导入工作区,MAT函数可以被不同的机器导入,甚至可以通过其他的程序调用。
● save('filename'):将工作区中的所有变量保存为文件,文件名由filename指定。如果filename中包含路径,则将文件保存在相应目录下,否则默认路径为当前路径。
● save('filename', 'var1', 'var2', ...):保存指定的变量在 filename 指定的文件中。
● save('filename', '-struct', 's'):保存结构体s中全部域作为单独的变量。
● save('filename', '-struct', 's', 'f1', 'f2', ...):保存结构体s中的指定变量。
● save('-regexp', expr1, expr2, ...):通过正则表达式指定待保存的变量需满足的条件。
● save('..., 'format'),指定保存文件的格式,格式可以为MAT文件、ASCII文件等。
13.1.2 数据导入
  MATLAB中导入数据通常由函数load实现,该函数的用法如下:
● load:如果matlab.mat文件存在,导入matlab.mat中的所有变量,如果不存在,则返回error。
● load filename:将filename中的全部变量导入到工作区中。
● load filename X Y Z ...:将filename中的变量X、Y、Z等导入到工作区中,如果是MAT文件,在指定变量时可以使用通配符“*”。
● load filename -regexp expr1 expr2 ...:通过正则表达式指定需要导入的变量。
● load -ascii filename:无论输入文件名是否包含有扩展名,将其以ASCII格式导入;如果指定的文件不是数字文本,则返回error。
● load -mat filename:无论输入文件名是否包含有扩展名,将其以mat格式导入;如果指定的文件不是MAT文件,则返回error。
例13-1 将文件matlab.map中的变量导入到工作区中。
  首先应用命令whos –file查看该文件中的内容:
  >> whos -file matlab.mat
   Name                  Size              Bytes Class
   A                    2x3              48 double array
   I_q                 415x552x3            687240 uint8 array
   ans                1x3               24 double array
   num_of_cluster       1x1               8 double array
  Grand total is 687250 elements using 687320 bytes
  将该文件中的变量导入到工作区中:
  >> load matlab.mat
  该命令执行后,可以在工作区浏览器中看见这些变量,如图13-1所示。

图13-1 导入变量后的工作区视图
  接下来用户可以访问这些变量。
  >> num_of_cluster
  num_of_cluster =
       3
  MATLAB中,另一个导入数据的常用函数为importdata,该函数的用法如下:
● importdata('filename'),将filename中的数据导入到工作区中;
● A = importdata('filename'),将filename中的数据导入到工作区中,并保存为变量A;
● importdata('filename','delimiter'),将filename中的数据导入到工作区中,以delimiter指定的符号作为分隔符;
例13-2 从文件中导入数据。
  >> imported_data = importdata('matlab.mat')
  imported_data =
                 ans: [1.1813 1.0928 1.6534]
                   A: [2x3 double]
                 I_q: [415x552x3 uint8]
      num_of_cluster: 3
  与load函数不同,importdata将文件中的数据以结构体的方式导入到工作区中。
13.1.3 文件的打开
  MATLAB中可以使用open命令打开各种格式的文件,MATLAB自动根据文件的扩展名选择相应的编辑器。
   需要注意的是open('filename.mat')和load('filename.mat')的不同,前者将filename.mat以结构体的方式打开在工作区中,后者将文件中的变量导入到工作区中,如果需要访问其中的内容,需要以不同的格式进行。
   
例13-3 open与load的比较。
  >> clear
  >> A = magic(3);
  >> B = rand(3);
  >> save
  Saving to: matlab.mat
  >> clear
  >> load('matlab.mat')
  >> A
  A =
       8     1     6
       3     5     7
       4     9     2
  >> B
  B =
      0.9501    0.4860    0.4565
      0.2311    0.8913    0.0185
      0.6068    0.7621    0.8214
  >> clear
  >> open('matlab.mat')
  ans =
      A: [3x3 double]
      B: [3x3 double]
  >> struc1=ans;
  >> struc1.A
  ans =
       8     1     6
       3     5     7
       4     9     2
  >> struc1.B
  ans =
      0.9501    0.4860    0.4565
      0.2311    0.8913    0.0185
      0.6068    0.7621    0.8214



下面是我的尝试

% 画图前转格式
% xlsread('allvresultreedit.xls'); % 读取xls文件
% save ('allvresultreedit.mat'); % 转换为mat格式

load allvresultreedit.mat
whos -file allvresultreedit.mat
imported = importdata('allvresultreedit.mat')
open allvresultreedit.mat



>> whos -file allvresultreedit.mat
  Name             Size             Bytes  Class     Attributes
  a                1x100              200  char               
  actloop          1x1                  8  double             
  allsum           1x1                  8  double             
  ans              3x1                 24  double             
  b                1x98               196  char               
  cellnamesA       1x2                  4  char               
  cellnamesB       1x2                  4  char               
  cellnamesC       1x2                  4  char               
  columns1         1x5                610  cell               
  columns2         1x10              1254  cell               
  columns3         1x3                422  cell               
  d                1x1                  8  double             
  datestring       1x15                30  char               
  ddata            1x3                360  cell               
  dmat            10x1                 80  double             
  dmean            1x1                  8  double             
  dreamyname       1x6                 12  char               
  drinfo          10x5               2028  cell               
  dstd             1x1                  8  double             
  dsubclo         10x1               1200  cell               
  dsum             1x1                  8  double             
  dvdq            10x2               3976  cell               
  file1            1x14                28  char               
  i                1x1                  8  double             
  j                1x1                  8  double             
  k                1x1                  8  double             
  names            1x1                120  cell               
  output           1x43                86  char               
  output1          1x20                40  char               
  output2          1x19                38  char               
  res1             1x20                40  char               
  res2             1x23                46  char               
  res3             1x29                58  char               
  res4             1x12                24  char               
  res5             1x19                38  char               
  rowname2         1x1                132  cell               
  rr               1x1                  2  char               
  ss               1x1                  2  char               
  subtract         1x1                  8  double             
  tfexp            1x1                  8  double             
  tfloop           1x1                  8  double             
  timecell         1x3                360  cell               
  tsexp            1x1                  8  double             
  tstart           1x1                  8  uint64             
  tt               1x1                  2  char               
  txtfile1         1x1                  8  double             
  w                1x3                  6  char               
  writein1         2x5               1190  cell               
  writein3         1x10              1200  cell               
  writein4         2x3                782  cell               
  ydata            1x3                360  cell               
  ymat            10x1                 80  double             
  ymean            1x1                  8  double             
  you              1x1                900  struct             
  youinfo          5x1                580  cell               
  yourname         1x4                  8  char               
  ystd             1x1                  8  double             
  ysubclo         10x1               1200  cell               
  ysum             1x1                  8  double             
  yvyq            10x2               3876  cell               






>> imported = importdata('allvresultreedit.mat')
imported =
           ans: [3x1 double]
        tstart: 2386826382023
             d: 5
             w: 'Thu'
    datestring: 'Thu-14-Sep-2017'
          yvyq: {10x2 cell}
          dvdq: {10x2 cell}
          res1: 'Not easy. GOOD LUCK!'
          res2: 'Get to KNOW MORE about '
          res3: 'SOORY. Time to say goodbye to'
          res4: 'Keep trying!'
          res5: 'Go and get DATING!!'
          ysum: 60
          dsum: 50
         ymean: 6
         dmean: 5
          ystd: 0
          dstd: 0
      subtract: 10
        allsum: 110
           you: [1x1 struct]
       youinfo: {5x1 cell}
      yourname: 'feng'
         file1: 'allvresult.xls'
      columns1: {'name'  'country'  'age'  'gender'  'major'}
      writein1: {2x5 cell}
         tsexp: 15.1041
        tfloop: 3
       actloop: 4
        drinfo: {10x5 cell}
             k: 3
    dreamyname: 'youooo'
             j: 11
             b: 'will dreamy's family and friend like you?\n (1 they hate...'
       dsubclo: {10x1 cell}
          dmat: [10x1 double]
            rr: '5'
    cellnamesA: 'A5'
            ss: '7'
    cellnamesB: 'B7'
            tt: '6'
    cellnamesC: 'B6'
         names: {'feng'}
      columns2: {1x10 cell}
      writein3: {[5]  [5]  [5]  [5]  [5]  [5]  [5]  [5]  [5]  [5]}
      columns3: {'proc_start'  'experiment_start'  'experiment_finish'}
         ddata: {[50]  [5]  [0]}
             i: 11
             a: 'Do your family and friends like the dreamy?\n (1 they ha...'
       ysubclo: {10x1 cell}
          ymat: [10x1 double]
       output1: 'Not easy. GOOD LUCK!'
       output2: 'Go and get DATING!!'
      writein4: {2x3 cell}
         ydata: {[60]  [6]  [0]}
      txtfile1: 3
        output: '
Not easy. GOOD LUCK!
Go and get DATING!!
'
         tfexp: 155.0612
      rowname2: {'time count'}
      timecell: {[2386826382023]  [15]  [155]}




>> open allvresultreedit.mat
ans =
           ans: [3x1 double]
        tstart: 2386826382023
             d: 5
             w: 'Thu'
    datestring: 'Thu-14-Sep-2017'
          yvyq: {10x2 cell}
          dvdq: {10x2 cell}
          res1: 'Not easy. GOOD LUCK!'
          res2: 'Get to KNOW MORE about '
          res3: 'SOORY. Time to say goodbye to'
          res4: 'Keep trying!'
          res5: 'Go and get DATING!!'
          ysum: 60
          dsum: 50
         ymean: 6
         dmean: 5
          ystd: 0
          dstd: 0
      subtract: 10
        allsum: 110
           you: [1x1 struct]
       youinfo: {5x1 cell}
      yourname: 'feng'
         file1: 'allvresult.xls'
      columns1: {'name'  'country'  'age'  'gender'  'major'}
      writein1: {2x5 cell}
         tsexp: 15.1041
        tfloop: 3
       actloop: 4
        drinfo: {10x5 cell}
             k: 3
    dreamyname: 'youooo'
             j: 11
             b: 'will dreamy's family and friend like you?\n (1 they hate...'
       dsubclo: {10x1 cell}
          dmat: [10x1 double]
            rr: '5'
    cellnamesA: 'A5'
            ss: '7'
    cellnamesB: 'B7'
            tt: '6'
    cellnamesC: 'B6'
         names: {'feng'}
      columns2: {1x10 cell}
      writein3: {[5]  [5]  [5]  [5]  [5]  [5]  [5]  [5]  [5]  [5]}
      columns3: {'proc_start'  'experiment_start'  'experiment_finish'}
         ddata: {[50]  [5]  [0]}
             i: 11
             a: 'Do your family and friends like the dreamy?\n (1 they ha...'
       ysubclo: {10x1 cell}
          ymat: [10x1 double]
       output1: 'Not easy. GOOD LUCK!'
       output2: 'Go and get DATING!!'
      writein4: {2x3 cell}
         ydata: {[60]  [6]  [0]}
      txtfile1: 3
        output: '
Not easy. GOOD LUCK!
Go and get DATING!!
'
         tfexp: 155.0612
      rowname2: {'time count'}
      timecell: {[2386826382023]  [15]  [155]}


open的话,这会是一个 struct的数据类型



你可能感兴趣的:(Matlab学习)