matlab中結構體和cell的區別

時間 2021-07-08 21:30:46

1樓:育知同創教育

1、什麼是單元陣列?

單元陣列又叫cell(元胞)陣列,以前見過“元胞陣列”一詞,其實是可以理解成陣列的,比如二維陣列,可以理解成2行n列的矩陣或陣列。

2、單元/元胞陣列是如何構成的呢?

我們都熟悉陣列或矩陣的構成,比如一個m*n大小的矩陣,那麼它有m行、n列,共有m*n個元素。如果我們只在實數範圍內考慮,那麼對應的每一個元素就是一個實數,這是一般的實矩陣。單元陣列也可以有m行n列,對應有m*n個元素。

所不同的是單元陣列中每個元素是一個cell(元胞),而每個cell可以由不同資料格式的矩陣構成,構成每個cell的矩陣大小也可以不同,可以是一個元素,也可以是一個向量,也可以是一個多維陣列。

3、如何建立一個單元陣列?

可使用cell函式建立一個空的單元陣列,具體可參考matlab中 help cell內容。也可以使用大括號建立,比如我們要建立一個1x3的單元陣列c,則c=,可以把a設為一個向量,具體各cell資料型別讀者可以用c/c/c讀出來然後使用whos函式自己驗證。其中prod是求積,若a為一個陣列(或一維向量),則一個prod後即可求出所有元素之積,第二個prod則還為原結果。

若a為一個矩陣,則第一個prod後針對各列求積,結果保留為一個陣列,第二個prod則對該陣列所有元素再求積,那麼兩個prod的結果即為對矩陣所有元素求積。

4、什麼是結構體及其構成?

結構體可以理解為一種特殊的資料型別。一個結構體有若干結構變數或者域構成。每個結構變數/域類似於一個cell,結構變數可以由不同資料型別的陣列構成,比如字串、整型、浮點數……。

此處只是可以借用cell的形式來理解結構變數,但二者絕不等同。

5、如何建立結構體?

可以使用struct函式建立結構體。我們定義結構體為str_array,

則str_array=struct('field1',val1,'field2',val2,……),其中field1、field2為域名,val1、val2為具體值。

6、單元陣列與結構體的不同之處。

結構體(也可稱為結構體陣列)中可以使用域名來訪問資料,而在單元陣列中則使用矩陣的索引操作。

在matlab中cell函式的作用

cell函式在本程式段中起到了定義一個陣列的作用。程式功能 第一句a cell 100,1 意思是定義一個100x1的陣列a for end 是迴圈結構,迴圈體中包含了兩個功能,一是使全域性變數flag減1,二是使a的狀態值返回到一個double型別的1x13的陣列。當全域性變數flag小於零時迴圈...

C 類和結構體有什麼區別,C 中共用體 結構體和類的區別

c c 結構體的區別 c中的結構體和c 中結構體的不同之處 在c中的結構體只能自定義資料型別,結構體中不允許有函式,而c 中的結構體可以加入成員函式。c 中的結構體和類的異同 一 相同之處 結構體中可以包含函式 也可以定義public private protected資料成員 定義了結構體之後,可...

cc類和結構體的差別,C C 類和結構體的差別

豆哥的每一天 c c 類和結構體的的區別 1 結構體基本用在很多資料,需要一個結構體來封裝這些資料。而類的話,是物件導向的思想,可以有很多介面讓人呼叫,私有變數等外部不能呼叫,還有保護型別的變數。2 結構體也可以被認為是一種特殊的類,它不存在任何函式,構造和解構函式也沒有,而且是一個公共的的類。3 ...