MATLAB結構體

2020-07-16 10:05:19
MATLAB 中的結構體與C語言中的結構體類似,一個結構體可以通過欄位儲存多個不同型別的資料。因此,結構體相當於一個資料容器,把多個相關聯的不同型別的資料封裝在一個結構體物件中。

建立結構體物件的方法有兩種,既可以直接通過賦值語句給結構體的欄位賦值,也可以使用結構體建立 struct() 函數。兩種方法的具體操作步驟如下:

通過欄位賦值建立結構體

在對結構體的欄位進行賦值時,賦值表示式的變數名使用結構體名稱.欄位名稱的形式書寫,對同一個結構體可以進行多個欄位賦值。

例如,通過賦值建立結構體,在 MATLAB 的命令列視窗中,輸入下面的指令:
>> student.name = 'ming';
student.age = 10;
student.grade = 4;
student.subject = {'chinese','math','english'};
student
輸出結果如下:
student = 
    包含以下欄位的 struct:
        name: 'ming'
        age: 10
        grade: 4
        subject: {'chinese','math','english'}
在命令列視窗輸入:
>> whos student
輸出結果如下:
Name Size Bytes Class Attributes
student 1x1 1100 struct
上例中,通過對 4 個欄位賦值建立了結構體物件 student,然後用 whos() 函數分析 student 是一個 1x1 的結構體陣列。

利用 struct() 函數建立結構體

在 MATLAB 命令列視窗中,輸入下面指令:
>> student = struct('name','ming','age','10','grade','4','subject','Chinese,Math,English')
輸出結果如下:
student = 
    包含以下欄位的 struct:
        name: 'ming'
        age: '10'
        grade: '4'
        subject: 'Chinese,Math,English'
上例建立了結構體 student,並將 4 的欄位分別賦值為 'ming','10'、'4'、'Chinese,Math,English'。

上述可見,使用這兩種方法都可以達到相同的結果。