MATLAB中cell函式
阿新 • • 發佈:2019-01-27
如果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