matlab數據的導入和導出,以matlab工作區workspace為source和destination


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文件等。

 

數據導入


  
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。

  

舉幾個例子:

 
將文件matlab.mat中的變量導入到工作區中。
  首先應用命令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

  該命令執行后,可以在工作區瀏覽器中看見這些變量。


  接下來用戶可以訪問這些變量。

  

>> num_of_cluster
  num_of_cluster =
   3

 

  MATLAB中,另一個導入數據的常用函數為importdata,該函數的用法如下:

importdata('filename'),將filename中的數據導入到工作區中;
A = importdata('filename'),將filename中的數據導入到工作區中,並保存為變量A;
importdata('filename','delimiter'),將filename中的數據導入到工作區中,以delimiter指定的符號作為分隔符;

  

從文件中導入數據。

  >> 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將文件中的數據以結構體的方式導入到工作區中。

 

文件的打開


  MATLAB中可以使用open命令打開各種格式的文件,MATLAB自動根據文件的擴展名選擇相應的編輯器。
需要注意的是open('filename.mat')和load('filename.mat')的不同,前者將filename.mat以結構體的方式打開在工作區中后者將文件中的變量導入到工作區中,如果需要訪問其中的內容,需要以不同的格式進行。

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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM