matlab中結構體和cell的區別

2021-07-08 21:30:10 字數 1053 閱讀 9293

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、單元陣列與結構體的不同之處。

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

Delphi中的結構體與結構體指標

這個問題實際上與delphi 的語法結構有著密切的關係。因為delphi 所使用的語言是pascal 所以在pascal 中結構體與c 的結構體有著很多相似的地方。因為結構體經常被看做是一種變數型別。作為一種類的變體,結構體在宣告例項的時候就被構建了。也正是這個原因所以 delphi 的結構體並沒有...

C語言結構體名和結構體型別名有什麼區別

結構體型別名可以將不同型別的變數放在一起,應用很廣,具體應用可以拿本c語言的書看看。結構體名就是結構體變數的名字,與變數名類似 c 中結構體的char型別怎麼賦值?如果用baistring的話,要在開頭加上du include 然後struct worker 後邊就可以像你那麼dao直接賦值就行了。...

c語言結構體與共用體,在C語言裡面,共用體和結構體的區別是什麼?

首先你說的很對 共同體的確佔的記憶體要比結構體小結構體佔用的記憶體空間,是其元素,佔空間的總和,而共用體是,元素中佔用空間最大的元素的空間 所以共用體在空間開銷上要小一點 但是既然是兩個不同的概念當然是不一樣的 要不就沒必要定義兩個名詞了其實在共用體所用的記憶體中已經寫入了資料 當使用其它元素時 上...