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