zz 儲存matlab資料

來源:互聯網
上載者:User

檔案的儲存
  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, ...):通過Regex指定待儲存的變數需滿足的條件。
● 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 ...:通過Regex指定需要匯入的變數。
● 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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.