㈠ 如何Matlab 中在cell中添加元素
1、首先打開matlab軟體,輸入a=cell(3,3),進行創建3行3列的元素。
㈡ matlab中cell函數是什麼意思
cell 是元包數組的意思
有點類似於結構體,cell裡面每個元素可以不一樣 不像矩陣 都是實數
比方說回:
a={'啊',123,[3 5 6],[1 2;7 8],sym(1)}
a =
'啊'
[123]
[1x3 double]
[2x2 double]
[1x1 sym]
>> class(a{1})
ans =
char
>> class(a(1))
ans =
cell
a是一個cell 裡面答有數 有字元 有矩陣
如上面所示,a{1}表示的是a的第一個元素的內容 第一個是字元 那麼a{1}就是字元
而小括弧() a(1)還是一個cell 只不過這個cell只含有一個字元
參考:http://blog.sina.com.cn/s/blog_8259d70901017wit.html
㈢ Matlab中如何創建一個全為:的cell
clear all;
a=cell(3,3)
b=[':'];
b=mat2cell(b)
a(:,:)=b
-----------運行結果細胞數組a的所有元素都是:
㈣ 在matlab中建立一個5*4元的cell結構LUCK
Matlab裡面元包(Cell)的概念,其元包就是一個類似矩陣的東西,但是它的特點就是矩陣的每一項可以放任何的元素,比如:
>> MyCell
MyCell =
Columns 1 through 2
[16x16 double] 'i am a string'
Column 3
[1x1 struct]
MyCell的第一項是一個16x16的矩陣,第二項是一個字元串,第三項是個結構體。
Cell的使用其實也很簡單,和矩陣的用法備嘗的類似,不同的矩陣採用()作為訪問的表示,如a(1)=10;但是元包是採用花括弧的,如MyCell{1}=zeros(16,16),當然元包也可以有矩陣的形式MyCell{i,j}(其實元包也可以可用MyCell(i,j),但是從字面上看不出和一般的矩陣有任何的區別,我個人還是建議使用花括弧)。
再回到開頭的問題,那麼就用一個1 x N的元包組來記錄這些數據,每個元包就放置一個矩陣即可。
首先要要創建一個元包用來存放數據,這里有兩種方法
(1) DataCell = Cell(1,N);
(2) DataCell{N} = [];
這兩種方法的效果是一樣產生了一個1 X N的元包,沒有元素都是空的。
使用的時候也很簡單 DataCell{1} = DataArray。其中DataArray就是要存儲的某一行數據。
要訪問某行數據也很簡單 DataCell{2}(7) 就是表示第2個元包的數組的第7個元素。
此外元包還有自己的可視化工具,celldisp()和cellplot()分別用作顯示元包的內容和畫出元包。
a=cell(n,m)
那麼就把a初始化為一個n行m列的空cell類型數據。
如何賦值呢?
a{1,1}=rand(5)
那麼a的1行1列的單元中存儲的就是一個隨機的5×5的方陣了。
那麼要用第一個單元中的方陣中的某個值呢?
可以如下引用:a{1,1}(2,3)
就可以了,引用cell單元時要用{},再引用矩陣的某個數據就要用()了。
cell單元中的每個單元都是獨立的,可以分別存儲不同大小的矩陣或不同類型的數據。
㈤ 在matlab中cell函數的作用
cell函數在本程序段中起到了定義一個數組的作用。
程序功能:第一句A=cell(100,1),意思是定義一個100X1的數組A
「for ……end」是循環結構,循環體中包含了兩個功能,一是使全局變數flag減1,二是使A的狀態值返回到一個double類型的1X13的數組。當全局變數flag小於零時循環終止。
下面舉例說明cell函數的一般使用情形:
1,首先用cell函數來聲明一個新的單元陣列。
2,以聲明1x3形式的單元陣列v為例,輸入命令行v={B sum(B) prod(prod(B))}
這里需要補充說明B是我們預先聲明的一個向量。
3,上一步中的prod的功能是求積運算,所以當向量B的數據類型不同時得到的結果也是不同的。
若B為一個一維向量(或數組),則一次prod運算後得到的是所有元素的乘積,二次prod運算則會將結果還原出來。
若B為矩陣,那麼一次prod運算後,對矩陣各列分別求積後得到一個新的數組C,這個數組即為輸出結果,二次prod運算後,則將數組C中所有元素求積,然後輸出這個積。
以上是cell函數的具體作用。
(5)matlab創造cell擴展閱讀:
用cell函數創建細胞數組,創建的數組為空細胞。cell函數創建空細胞數組的主要目的是為數組預先分配連續的存儲空間,節約內存佔用,提高執行效率。
從細胞數組中讀取數據,可保存為一個標準的數組或一個新的單元數組,或取出數組進行計算。細胞數組中數據的訪問,可通過細胞內容的下標進行,用細胞數組名加大括弧{}。大括弧中數值表示細胞的下標。
細胞型數據的定義方法:
1,直接賦值定義法
2,空間定義法
㈥ matlab如何將cell型變成double型呢
1、先把cell轉變成char數組,在把他轉變成數據類型.原理是轉變成char之後版的權矩陣每行的長度是相同的.[plain] view plainstr2num(char(cdata))
2、使用cellfun函數,第一個參數傳遞對每個cell單元使用的函數名,第二個參數是cell名.[plain] viewplaincellfun(@str2num, cdata)
3、元胞數組的元素都是矩陣呀,轉化完後也是矩陣。clear all;clc;test ={'1','1','1','1','2','2','2','2','3','3','3','3','4','4','4','4'};
for n=1:length(test)
x{n}=str2num(test{n});
end
x =
Columns 1 through 10
[1] [1] [1] [1] [2] [2] [2] [2] [3] [3]
Columns 11 through 16
[3] [3] [4] [4] [4] [4]
>> class(x{1})
ans
㈦ MATLAB怎樣把數值轉成cell
mat2cell 應該可以。 另外好像還有個函數是c打頭的,用在神經網路裡面的
㈧ matlab如何一次生成多個cell數組
%代碼如下,輸入到MATLAB
clear;clc;
A='利用元胞數組,輕松解決,如果不滿意,再繼續問我回'; %任給的答字元串
N=length(A);
value=cell(1,N);
for i=1:N
value{i}=A(i); % 將該字元串存儲到元胞數組value中,該元胞數組的每個變數都對應一個
%上述字元 串的一個字元,滿意否?
end
㈨ Matlab中如何創建一個全為:的cell
>>
a=cell(2,2);%預分配
a{1,1}='cellclass';
a{1,2}=[1
2
2];
a{2,1}=['a','b','c'];
a{2,2}=[9
5
6];
>>
a{1,1}
ans
=
cellclass
>>
a{1,2}
ans
=
1
2
2
>>
a{2,:}
ans
=
abc
ans
=
9
5
6
>>
b=a{1,1}
b
=
cellclass
他也是個數組,跟平常的數組操作相似,注意用花括弧
我也內知道這么多
不知道不敢容亂說