在matlab中cell函式的作用

時間 2021-07-01 01:43:38

1樓:

cell函式在本程式段中起到了定義一個陣列的作用。

程式功能:第一句a=cell(100,1),意思是定義一個100x1的陣列a

“for ……end”是迴圈結構,迴圈體中包含了兩個功能,一是使全域性變數flag減1,二是使a的狀態值返回到一個double型別的1x13的陣列。當全域性變數flag小於零時迴圈終止。

下面舉例說明cell函式的一般使用情形:

1,首先用cell函式來宣告一個新的單元陣列。

2,以宣告1x3形式的單元陣列v為例,輸入命令列v=

這裡需要補充說明b是我們預先宣告的一個向量。

3,上一步中的prod的功能是求積運算,所以當向量b的資料型別不同時得到的結果也是不同的。

若b為一個一維向量(或陣列),則一次prod運算後得到的是所有元素的乘積,二次prod運算則會將結果還原出來。

若b為矩陣,那麼一次prod運算後,對矩陣各列分別求積後得到一個新的陣列c,這個陣列即為輸出結果,二次prod運算後,則將陣列c中所有元素求積,然後輸出這個積。

以上是cell函式的具體作用。

2樓:

1,可使用cell函式建立一個空的單元陣列,也可以使用大括號建立。

2,比如要建立一個1x3的單元陣列c,則c=,可以把a設為一個向量,具體各cell資料型別讀者可以用c/c/c讀出來然後使用whos函式自己驗證。

3,其中prod是求積,若a為一個陣列(或一維向量),則一個prod後即可求出所有元素之積,第二個prod則還為原結果。

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

3樓:lnx的守望

一、1.cell就像很多個抽屜,每個裡面可以放不同型別的東西。cell函式是造元素為cell型別的矩陣

你這裡a=cell(100,1)就是造了100行1列的cell矩陣。當然此時每個元素裡什麼都還沒有。

2.a.flag=-1;

a.status=zeros(1,13);

就開始定義每個元素裡的資料了,可以看到每個cell裡儲存的都是結構型資料。

3.a.flag=-1;

a.status=zeros(1,13);

實際上並不是在a中儲存了兩個元素,而是儲存了一個結構型資料。

4.matlab中共有六種資料型別,分別為數值、字元、邏輯、結構、細胞、類。

其中細胞就是你這裡的cell型別資料。

5.a.flag=-1;

a.status=zeros(1,13);

實際上是在a中儲存了一個結構型別資料,它有兩個成員,一個名為flag、一個名為status,上面兩句話只不過是對這同一個元素的兩個成員進行賦值而已。

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

單元陣列也可以有m行n列,對應有m*n個元素。

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

三、1.可使用cell函式建立一個空的單元陣列,具體可參考matlab中 help cell內容。也可以使用大括號建立,比如我們要建立一個1x3的單元陣列c,則c=,可以把a設為一個向量,具體各cell資料型別讀者可以用c/c/c讀出來然後使用whos函式自己驗證。

2.其中prod是求積,若a為一個陣列(或一維向量),則一個prod後即可求出所有元素之積,第二個prod則還為原結果。若a為一個矩陣,則第一個prod後針對各列求積,結果保留為一個陣列,第二個prod則對該陣列所有元素再求積,那麼兩個prod的結果即為對矩陣所有元素求積。

擴充套件資料

1. 細胞型資料的定義:

1)直接賦值定義:細胞型變數在定義時需要使用大括號,元素用逗號隔開

例: b =

2)使用cell函式,預先為細胞型變數定義空間

例: a = cell(m,n) 定義一個空的m行n列的cell型別

4樓:匿名使用者

那個a(i)應該是a才對吧。

——————————————————————

cell是matlab中的一種資料型別,用大括號定義,括號裡可以是任意型別的資料或矩陣。如b=

這就定義了一個cell型的變數b,裡面儲存的是一個矩陣[1;2]

要引用裡面的資料只要在大括號裡寫上對應的下標即可,如

b下面我們給b再加個元素,我們可以這樣定義

b(2)=

也可以利用引用的方法定義

b='hello'

第二種方法比第一種方法更方便所以更常用。

這樣b就有兩個元素了,b(1)是,b(2)是,每個元素都是cell型的(注意和b、b的區別,b是[1;2],b是'hello')

cell函式是造元素為cell型別的矩陣

你這裡a=cell(100,1)就是造了100行1列的cell矩陣。當然此時每個元素裡什麼都還沒有。

然後a.flag=-1;

a.status=zeros(1,13);

就開始定義每個元素裡的資料了,可以看到每個cell裡儲存的都是結構型資料。

————————————————————————————

a.flag=-1;

a.status=zeros(1,13);

實際上並不是在a中儲存了兩個元素,而是儲存了一個結構型資料。

matlab中共有六種資料型別,分別為數值、字元、邏輯、結構、細胞、類。

其中細胞就是你這裡的cell型別資料。

a.flag=-1;

a.status=zeros(1,13);

實際上是在a中儲存了一個結構型別資料,它有兩個成員,一個名為flag、一個名為status,上面兩句話只不過是對這同一個元素的兩個成員進行賦值而已。

實際上我們也可以自己定義一個結構變數,比如

a.one=[1;2];

a.two='hello';

a就是一個結構型的變數,它有兩個成員,分別叫one和two。但請記住,a是一個變數,不是兩個變數。

matlab中結構體和cell的區別

育知同創教育 1 什麼是單元陣列?單元陣列又叫cell 元胞 陣列,以前見過 元胞陣列 一詞,其實是可以理解成陣列的,比如二維陣列,可以理解成2行n列的矩陣或陣列。2 單元 元胞陣列是如何構成的呢?我們都熟悉陣列或矩陣的構成,比如一個m n大小的矩陣,那麼它有m行 n列,共有m n個元素。如果我們只...

matlab怎樣把cell函式轉換為一般矩陣形式

若cell的維數可以匹配到相應的矩陣,則可以用cell2mat來把cell函式轉換為一般矩陣形式。matlab矩陣轉換 一 字元與陣列之間的轉換 字元是str,陣列是num,兩者之間的轉換名稱十分好記,字元轉換為數字,str to num,其函式名稱為str2num,同理數字轉化為字元便是num2s...

在matlab中如何實現函式的抽樣

鄭浪啪 dyaddown。功能 對時間序列進行二元取樣,每隔一個元素提取一個元素,得到一個降取樣時間序列。格式 y dyaddown x,evenodd 當evenodd 0時,從x中第二個元素開始取樣 偶取樣 當evenodd 1時,從x中第一個元素開始取樣 奇取樣 2.y dyaddown x ...