參考網址:http://blog.sina.com.cn/s/blog_5efed5800100exmj.html
Cell函數
如果p為一個數,那么h(1)=p,是沒有問題的。
如果p為一個向量,那么h(1,:)=p是沒有問題的。
如果p是一個矩陣的話,上面的兩種賦值方法都是會有錯誤的。
那么要如何處理呢?
這時就用到了cell數據類型了。cell的每個單元都可以存儲任何數據,比如傳遞函數等。當然,存儲矩陣更是沒有問題的了。但是用cell數據類型之前,要先初始化。
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單元中的每個單元都是獨立的,可以分別存儲不同大小的矩陣或不同類型的數據。
下面舉個例子:
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
size函數
size(X,1),返回矩陣X的行數;
size(X,2),返回矩陣X的列數;
N=size(X,2),就是把矩陣X的列數賦值給N