MATLAB結構矩陣

2021-10-07 17:39:28 字數 2719 閱讀 1218

結構矩陣的元素可以是不同的資料型別,它能將一組具有不同屬性的資料納入到乙個統一的變數名下進行管理。

1.結構矩陣的建立:

結構成員賦值

結構:結構矩陣名.成員名=表示式

a(1).x=10; a(1).y='zhangsan';   a(1).z=[11,21;34,78];

a(2).x=12; a(2).y='lisi; a(2).z=[34,191;27,578];

a(3).x=14; a(3).y='wangwu'; a(3).z=[13,890;67,231];

上述結構矩陣中有三個結構成員,他們的資料型別都是一樣的,有x(整數),y(字串),z(矩陣)。通過對結構成員進行新的資料型別賦值從而實現新增,在乙個結構成員新增乙個新的資料型別的時候,其他的結構成員也會新增同樣的新的資料型別,不過是空的。

例如:

a(1).x=10; a(1).y='zhangsan';   a(1).z=[11,21;34,78];

a(2).x=12; a(2).y='lisi'; a(2).z=[34,191;27,578];

a(3).x=14; a(3).y='wangwu'; a(3).z=[13,890;67,231];

a(1).tnt='666'; %給a(2)乙個新的字串屬性,並初始化為'666'

%下面檢視a(1)和a(2)內部的屬性變化

>>a(1)

ans =

包含以下欄位的 struct:

x: 12

y: 'lisi'

z: [2×2 double]

tnt: '666'

>>a(2)

ans =

包含以下欄位的 struct:

x: 10

y: 'zhangsan'

z: [2×2 double]

tnt:

從上面可以看到,a(1)和a(2)的資料型別是一樣的,但是a(1)有數值,而a(2)沒有。

2.結構矩陣的函式

函式名含義

struct

建立或轉換為結構矩陣

getfield

獲取結構成員的內容

rmfield

刪除結構成員

isstruct

是結構時,值為真

fieldnames

獲取結構成員名

setfield

設定結構成員的內容

isfield

成員在結構中時,值為真

(1)getfield(s,『a』):返回結構體 s指定欄位a中的值。例如,如果 s.a = 1,則 getfield(s,『a』)返回 1。

(2)rmfield(s,『name』):從結構體陣列s 中刪除指定的乙個或多個字段。使用字元向量元胞陣列或字串陣列指定多個字段。s的維度保持不變

(3)isstruct:確定輸入是否為結構體陣列,是則返回邏輯值 1 (true),否則返回邏輯值 0 (false)。

(4)fieldnames(s):返回結構矩陣s的欄位名稱。

(5)setfield(s,field,value):為 1×1 結構體 s 的指定字段賦值。例如,s = setfield(s,『a』,1) 進行賦值 s.a = 1。

(6)tf = isfield(s,fieldname):檢查結構體 s,檢視它是否包含由 fieldname 指定的字段。如果 s 包含此欄位,則輸出 tf 設定為邏輯值 1(true),否則設定為邏輯值 0 (false)。如果 s 不是結構體陣列,isfield 返回 false。輸入引數 fieldname可以是字元向量或字串標量。

3.結構矩陣的增刪查改

:上述

:使用rmfiled

>> a(1).x=10; a(1).y='zhangsan';   a(1).z=[11,21;34,78];

a(2).x=12; a(2).y='lisi'; a(2).z=[34,191;27,578];

a(3).x=14; a(3).y='wangwu'; a(3).z=[13,890;67,231];

>> a=rmfield(a,'x') %刪除結構矩陣a中的x資料字段

輸出:

>> a = 

包含以下欄位的 1×3 struct 陣列:yz

>> a(1)

ans =

包含以下欄位的 struct:

y: 'zhangsan'

z: [2×2 double]

(1)查結構矩陣字段型別:fieldnames(s)

(2)查具體資料:直接用』.』,進行引用

(3) 檢視結構矩陣是否含有目標字段,isfield(s,fieldname)

(1)直接引用進行賦值修改

(2)使用setfield(s,field,value)函式進行賦值修改

matlab 矩陣大小及結構的改變

函式名稱 函式功能 fliplr a 矩陣每一行均進行逆序排列 flipud a 矩陣每一列軍進行逆序排列 flipdim a,dim 生成乙個在dim維矩陣a內的元素交換位置的多維矩陣 rot90 a 生成乙個由矩陣a逆時針旋轉90度而得到的新矩陣 rot90 a,k 生成乙個由矩陣a逆時針旋轉k...

Matlab矩陣與矩陣運算

1.矩陣的建立函式 特殊矩陣 a.矩陣轉置 inv a 矩陣求逆 sparse a 稀疏矩陣 full a 將稀疏矩陣轉換為普通矩陣 eye n n階單位矩陣 zeros m,n m n的零矩陣 ones m,n m n的元素全為1的矩陣 rand m,n m n的隨機矩陣,元素在0 1間均勻分布 ...

Matlab 矩陣索引

獲取矩陣元素 a row,column 線性索引 matlab儲存矩陣並非以它的形狀的形式,而是乙個線性元素列,將每一列連線起來。比如 a 2 6 9 4 2 8 3 5 1 a 2 6 9 4 2 8 3 5 1 存為2,4,3,6,2,5,9,8,1 所以a 3,2 也為a 6 尺寸為 d1 d...