matlab基礎學習-檔案操作
阿新 • • 發佈:2019-01-01
一、 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>