13-3 峇峓傿c}C

使用 fieldnames 指令可傳回一結構陣列的所有欄位,例如:

Example 1: 13-結構陣列/fieldNames01.mstudent = struct('name', 'Roland', 'scores', [80, 90]); allFields = fieldnames(student) allFields = 'name' 'scores'

在上例中,其傳回的結果是一個字串異質陣列(Cell Array of Strings),包含了 student 的所有欄位。

欲增加一個新的欄位,直接將此欄加入於任一陣列元素即可,例如:

Example 2: 13-結構陣列/addField01.mclear student % 清除 student 變數 student = struct('name', 'Roland', 'scores', [80, 90]); student(2).age = 20; % 加入新欄位 student(1) % 顯示 student(1) student(2) % 顯示 student(2) ans = name: 'Roland' scores: [80 90] age: [] ans = name: [] scores: [] age: 20

由上述結果可看出,MATLAB 會將此新欄位加入其他元素,並設定其預設值為 [](空矩陣)。

欲刪除一個欄位,可用 rmfield 指令,其使用格式如下:

newArray = rmfield(array, 'field')

例如,欲刪除 scores 欄位,可輸入如下:

Example 3: 13-結構陣列/rmField01.mstudent = struct('name', 'Roland', 'scores', [80, 90]) student2 = rmfield(student, 'scores') % 刪除 scores 欄位 student = name: 'Roland' scores: [80 90] student2 = name: 'Roland'


MATLAB程式設計:入門篇