1. 程式人生 > >matlab基礎學習-檔案操作

matlab基礎學習-檔案操作

一、 EXCEL檔案讀寫操作

1.1 讀操作

命令:

<pre name="code" class="cpp"><span style="font-size:24px;">[data,text]  = xlsread(FileName, SheetName, Range);</span>

引數說明:

輸入引數:

FileName : 要讀取的檔名,如果不在當前目錄下,要加上路徑。

SheetName : 要讀取的sheet名,不加預設讀取sheet1。

Range : 要讀取的範圍,不加預設讀取整個檔案。

參考示例 :

示例1

sheet1:

1 2 3
4 5 6
a b c
d e f
7 8 9

sheet2:
7 8 9
a d c
10 11 12


<pre name="code" class="cpp"><span style="font-size:24px;">[fp_num, fp_txt] = xlsread('matlab_test.xlsx','sheet1');
fp_num
fp_txt

fp_num =

     1     2     3
     4     5     6
   NaN   NaN   NaN
   NaN   NaN   NaN
     7     8     9

fp_txt = 

    'a'    'b'    'c'
    'd'    'e'    'f'</span>

示例2

<pre name="code" class="cpp"><span style="font-size:24px;">[fp_num, fp_txt] = xlsread('matlab_test.xlsx','sheet1','A1:C1');
fp_num
fp_txt

fp_num =

     1     2     3

fp_txt = 

     {}</span>

示例3

<pre name="code" class="cpp"><span style="font-size:24px;">[fp_num,fp_txt] = xlsread('matlab_test.xlsx','sheet2','A1:C1');
fp_num
fp_txt
fp_num =

     7     8     9

fp_txt = 

     {}</span>

1.2 寫操作
命令:
 [STATUS,MESSAGE] = xlswrite(FILE,ARRAY,SHEET,RANGE)
 引數說明
STATUS : 
MESSAGE : 
FILE : 檔名,若該檔案不在當前matlab目錄下,要加上路徑
ARRAY : 要寫入的數值或者字元(字串)
RANGE : 要寫入的位置或範圍


示例1:
<span style="font-size:24px;">a = 1:5;
xlswrite('matlab_test.xlsx',a,'sheet1','A8');</span>
表示從EXCEL檔案中的A8位置開始寫,由於a是行向量,因此1:5共5個數分別寫入A8:E8五個單元格
<span style="font-size:24px;">a = a'
xlswrite('matlab_test.xlsx',a,'sheet1','A8');</span>
則a為列向量,1:5共5個數值從EXCEL檔案的A8開始寫,分別寫入A8:A12五個單元格
行向量只能在EXCEL檔案中按行來寫,列向量也只能在EXCEL檔案中按列來寫
<span style="font-size:24px;">a = 1:5;
xlswrite('matlab_test.xlsx',a,'sheet1','A8:A12');</span>
則A8:A12中寫入的內容都是1
原因如下:
1:5在EXCEL中寫的時候只能按行來,所以指定a佔據A8:A12,則表示佔據了5行
資料是這麼排列的
   A   B   C   D   E
8  1   2   3   4   5
9  1   2   3   4   5 
10 1   2   3   4   5
11 1   2   3   4   5
12 1   2   3   4   5
由於只能寫入A8:A12這5個單元格,所以最後的結果就是A8:A12都寫入了1,其餘單元格沒有寫入任何值.
要想使一個矩陣寫入的話,可以只指定一個開始的單元格作為左上角的資料存入的位置。
要想使一個行向量或者列向量重複寫入在單元格中,如下:
1  2  3  4  5
1  2  3  4  5
1  2  3  4  5
則可以在寫入的時候指定一個矩陣,則行(列)向量在寫入的時候就會自己重複寫,最終填滿整個矩陣,
這樣寫比使用迴圈執行效率更高,指定矩陣的方法是給出左上角和右下角的座標就可以了。如:B8:F12
<span style="font-size:24px;">xlswrite('matlab_test.xlsx',a,'sheet1','B8:F12');</span>