如何在MATLAB中使用結(jié)構(gòu)體
結(jié)構(gòu)體是多維MATLAB數(shù)組,包含可按文本字段標志符訪問的元素。例如,可以通過 'Ed Plum'; 83; 'B'來創(chuàng)建一個具有三個字段的標量結(jié)構(gòu)體。 與MATLAB環(huán)境中的其他內(nèi)容一樣
結(jié)構(gòu)體是多維MATLAB數(shù)組,包含可按文本字段標志符訪問的元素。例如,可以通過 'Ed Plum'; 83; 'B'來創(chuàng)建一個具有三個字段的標量結(jié)構(gòu)體。
與MATLAB環(huán)境中的其他內(nèi)容一樣,結(jié)構(gòu)體也可以作為數(shù)組存在,因此可以插入其他元素。例如,在本示例中,數(shù)組的每個元素都是一個具有若干字段的結(jié)構(gòu)體??梢允褂靡韵抡Z句一次添加一個字段:
S(2).name 'Toni Miller'; S(2).score 91; S(2).grade 'A-';
同樣地,可以使用以下語句一次添加整個元素:
S(3) struct('name','Jerry Garcia','score',70,'grade','C');
如果結(jié)構(gòu)體非常大以至于只想輸出摘要信息,可以將不同字段重新組合為其他MATLAB數(shù)組。這可以通過逗號分隔列表的表示法實現(xiàn)。例如,鍵入與鍵入S(1).score, S(2).score, S(3).score是等價的,這是一個逗號分隔列表。
如果將生成此類列表的表達式括在方括號中,MATLAB會將該列表中的每一項存儲在數(shù)組中。因此,在本示例中,MATLAB會創(chuàng)建一個數(shù)值行向量,該向量包含結(jié)構(gòu)體數(shù)組S的每個元素的score字段:
scores [];
要根據(jù)某個文本字段(例如,name)創(chuàng)建字符數(shù)組,請對生成的逗號分隔列表調(diào)用char函數(shù):
names char();
同樣地,可以通過將生成列表的表達式括入花括號中,根據(jù)name字段創(chuàng)建元胞數(shù)組:
names {};
最后,如果要將結(jié)構(gòu)體數(shù)組的每個元素的字段賦值給結(jié)構(gòu)體外部的單獨變量,請指定等式左側(cè)的每個輸出,并將其全部括在方括號中:
[N1 N2 N3] ;