matlab中結構體和cell的區別

2021-07-08 21:30:11 字數 1053 閱讀 7879

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中元素求和

生成一個包含隨機維度矩陣的元胞陣列 a randi 5,1 b randi 3,1 for m 1 a for n 1 b a randi 10,randi 5,1 randi 5,1 endend 將上元胞陣列拆散 m,n size a d 1 for k 1 m for h 1 n nm spr...

c語言結構指標和結構體成員指標問題

既是取地址符號,一個指標p指向q就需要寫作p q,在函式引數裡是 引用 就是別名,類似指標了,這種情況下對變數的修改會影響到函式外的原變數。那個printf a p n a 等於求出地址 x然後作為指標看待 p 所以也是yyyy了 樓主可以做個試驗,看看輸出結果地址間的關係,你就應該可以理解了 in...

c語言結構體中的char陣列怎麼賦值

常用兩種措施 在宣告結構體變數時初始化,如 include stdafx.h if the vc 6.0,with this line.include stdio.h struct stu int main void 這樣初始化printf d s n s.x,s.name return 0 向陣列...