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