如何轉換細胞陣列與結構陣列
細胞陣列與結構陣列之轉換
細胞陣列與結構陣列兩者間都是屬於資料結構之表示法,故其間之轉換也是一項重要的步驟,通常使用如下兩指令:
struct2cell:由結構陣列轉為細胞陣列。
cell2struct:由細胞陣列轉為結構陣列。
第一項可以直接由結構轉換細胞陣列,但會失去欄位之資訊。
第二項由細胞陣列轉換為在後面多加兩項參數,其一為欄位名稱,其二為其維度。其指令型式為:
c = struct2cell(s)
s = cell2struct(c, fields, dim)
舉例:
>> clear book, book.category = 'novel'; ...
book.name = '請用文明來說服我'; book.author = '龍應台'...
;book.price=500;
>> book
book =
category: 'novel'
name: '請用文明來說服我'
author: '龍應台'
price: 500
>> cost=struct2cell(book) %由book結構轉為cost細胞陣列
cost =
'novel'
'請用文明來說服我'
'龍應台'
[ 500]
>> cost{3} %使用大括號
ans =
龍應台
>> cost(2) %使用一般括號
ans =
'請用文明來說服我'
>> cost{2} %使用大括號
ans =
請用文明來說服我
最後之兩個指令雖然相同,但其意義不同,前者仍然是一個細胞之型式,後者為其內容。
下面為由細胞轉回結構陣列之情形,必須在第二項加入欄位名稱,此名稱並不一定要與原先的一致:
>> BOOK=cell2struct(cost,{'class' 'Book_name' 'Author' 'Price'})
BOOK =
class: 'novel'
Book_name: '請用文明來說服我'
Author: '龍應台'
Price: 500
>> BOOK.Book_name
ans =
請用文明來說服我
最後一項顯然為其內容。若原來資料有多筆記錄,則必須加入dim之參數。
沒有留言:
張貼留言