1. 程式人生 > >MATLAB中cell函式

MATLAB中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