matlab struct几乘几,matlab之結構體數組struct

以下內容來自於:https://blog.csdn.net/u010999396/article/details/54413615/

要在MALTAB中實現比較復雜的編程,就不能不用struct類型。而且在MATLAB中實現struct比C中更為方便。

4. 3.1 結構數組的創建

MATLAB提供了兩種定義結構的方式:直接法和使用struct函數法。

1. 使用直接引用方式定義結構

與建立數值型數組一樣,建立新struct對象不需要事先申明,可以直接引用,而且可以動態擴充。比如建立一個復數變量x:

x.real = 0; % 創建字段名為real,並為該字段賦值為0

x.imag = 0 % 為x創建一個新的字段imag,並為該字段賦值為0

x =

real: 0

imag: 0

然后可以將旗動態擴充為數組:

x(2).real = 0; % 將x擴充為1×2的結構數組

x(2).imag = 0;

在任何需要的時候,也可以為數組動態擴充字段,如增加字段scale:

x(1).scale = 0;

這樣,所有x都增加了一個scale字段,而x(1)之外的其他變量的scale字段為空:

x(1) % 查看結構數組的第一個元素的各個字段的內容

ans =

real: 0

imag: 0

scale: 0

x(2) % 查看結構數組的第二個元素的各個字段的內容,注意沒有賦值的字段為空

ans =

real: 0

imag: 0

scale: []

*******************************************************************************************

2. 使用struct函數創建結構

使用struct函數也可以創建結構,該函數產生或吧其他形式的數據轉換為結構數組。

struct的使用格式為:

s = sturct('field1',values1,'field2',values2,…);

該函數將生成一個具有指定字段名和相應數據的結構數組,其包含的數據values1、valuese2等必須為具有相同維數的數據,數據的存放位置域其他結構位置一一對應的。對於struct的賦值用到了元胞數組。數組values1、values2等可以是元胞數組、標量元胞單元或者單個數值。每個values的數據被賦值給相應的field字段。

當valuesx為元胞數組的時候,生成的結構數組的維數與元胞數組的維數相同。而在數據中不包含元胞的時候,得到的結構數組的維數是1×1的。例如:

s = struct('type',{'big','little'},'color',{'blue','red'},'x',{3,4})

s =

1x2 struct array with fields:

type

color

x

得到維數為1×2的結構數組s,包含了type、color和x共3個字段。這是因為在struct函數中{'big','little'}、{'blue','red'}和{3,4}都是1×2的元胞數組,可以看到兩個數據成分分別為:

s(1,1)

ans =

type: 'big'

color: 'blue'

x: 3

s(1,2)

ans =

type: 'little'

color: 'red'

x: 4

相應的,如果將struct函數寫成下面的形式:

s = struct('type',{'big';'little'},'color',{'blue';'red'},'x',{3;4})

s =

2x1 struct array with fields:

type

color

x

則會得到一個2×1的結構數組。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值