在matlab中cell函式的作用

2021-07-01 01:44:13 字數 3109 閱讀 8647

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傅利葉變換函式,matlab中傅利葉變換函式什麼意思了

用matlab 實現傅 bai里葉變換 使用者任意輸du入乙個函zhi數dao 然後,輸出函式的傅利葉變專換函式,然屬後輸出振幅頻率 x sin 2 pi t 任意輸入乙個函式。y fft x 傅利葉變換函式。plot abs y 振幅頻率。函式 function 表示每個輸入值對應唯一輸出值的一種...

matlab隨機函式怎麼取,matlab中怎樣隨機從一組資料中取一個數

淚之夢幻 如果是要要均勻分佈,可以使用語句rand 1 0.8 0.1 matlab中的rand函式 用於產生隨機數 均勻分佈的隨機數或矩陣 語法y rand n y rand m,n y rand m n y rand m,n,p,y rand m n p.y rand size a rand s...

matlab中random函式的問題

產生乙個3行3列的隨機數矩陣。隨機數服從0 10之間的均勻分布 即x u 0,10 matlab中rand 函式的問題。if number 0 number 1 6 k 1 這個地方是大寫k,不改變k的值哦 matlab產生隨機數問題 第乙個問題,執行 下面的 就都有了。x 10 rand 1,10...