- MATLAB量化金融分析基礎(chǔ)與實(shí)戰(zhàn)
- 馬萌
- 1203字
- 2020-05-28 17:52:06
1.7 cell
MATLAB中的cell類型(元胞數(shù)組)是一個(gè)承載其他數(shù)據(jù)類型的容器,它可以包含任何MATLAB類型的數(shù)據(jù),如數(shù)值、字符和句柄等,甚至其他cell數(shù)據(jù)。使用cell類型可以輕松實(shí)現(xiàn)復(fù)雜數(shù)據(jù)的嵌套。
1.7.1 實(shí)例15:兩種常見的cell賦值方式
例64:創(chuàng)建空cell。

例65:對(duì)上例C中的每個(gè)元素依次賦值。
賦值通常有兩種方式:第一種,等式左側(cè)用圓括號(hào)取cell元素并將等式右側(cè)的cell數(shù)據(jù)賦給左側(cè);第二種,等式左側(cè)用花括號(hào)取cell的元素值并將等式右側(cè)的數(shù)據(jù)值賦給左側(cè)。

繼續(xù)對(duì)C(2,2)中的2×2空cell賦值:用花括號(hào)先取得C{2,2}中的值2×2 cell之后,用“(1)”取出第一個(gè)子cell并用等號(hào)賦值為cell數(shù)據(jù){′a′}。
>>C{2,2}(1)={′a′};
或者可采取第二種賦值方式:用花括號(hào)先取得C{2,2}中的值2×2 cell之后,用“{1}”取出第一個(gè)cell的值將此值賦為′a′。
>>C{2,2}{1}=′a′;
tips:取cell元素用圓括號(hào),取cell中元素的值用花括號(hào)。雙擊【工作區(qū)】的變量以打開變量編輯器查看或修改變量,如圖1-2所示。

圖1-2 通過變量編輯器查看cell元素
1.7.2 實(shí)例16:mat2cell函數(shù)與num2cell函數(shù)
mat2cell函數(shù)可以將矩陣元素分塊放置到cell中。
語法:
C=mat2cell(A,dim1Dist,…,dimNDist)
其中dim1Dist,…,dimNDist為向量,包含分隔的每個(gè)子cell在當(dāng)前維度1,…,N下的長度。>>CM=ones(5,4);
>>C=mat2cell(CM,[2,3],[2,2])
C=
[2x2 double] [2x2 double]
[3x2 double] [3x2 double]
變量C的拆分結(jié)構(gòu)如圖1-3所示。

圖1-3 矩陣轉(zhuǎn)cell的結(jié)構(gòu)拆分示意圖
例66:num2cell函數(shù)可將矩陣中每個(gè)元素放置到一個(gè)cell中。
>>D=num2cell(CM)
1.7.3 實(shí)例17:cellstr函數(shù)
例67:cellstr函數(shù)可以將字符矩陣行中最后的空白字符刪除。

例68:cellstr函數(shù)可將字符矩陣放到cell列向量中。

1.7.4 實(shí)例18:cell2mat函數(shù)
cell2mat函數(shù)可以將任意形狀的數(shù)值cell轉(zhuǎn)換為矩陣。
例69:將cell類型C轉(zhuǎn)換回矩陣。
>>cell2mat(C)
數(shù)據(jù)的結(jié)構(gòu)變化如圖1-4所示。

圖1-4 cell轉(zhuǎn)數(shù)字矩陣的結(jié)構(gòu)示意圖
例70:將包含字符串的cell轉(zhuǎn)為數(shù)值數(shù)組。
>>str2double({′1′,′2′;′1′,′2′})
ans=
1 2
1 2
1.7.5 實(shí)例19:用cellfun函數(shù)做cell元素遍歷運(yùn)算
利用cellfun函數(shù)可以遍歷cell中的各個(gè)元素來進(jìn)行函數(shù)運(yùn)算。
語法:
cellfun(@fun,input)
例71:求cell中各元素的平均值。

tips:cellfun(@fun,input)中的fun函數(shù)句柄不僅限于系統(tǒng)內(nèi)置函數(shù),也可以使用自定義函數(shù)。
語法:
cellfun(@(x1,…,xN)fun,input1,…,inputN)
例72:求cell中元素的平均值。

例73:求2個(gè)cell中元素的和。

注意到輸出的OUT中第一個(gè)cell元素為1×3矩陣,第二個(gè)cell元素為3×1矩陣,第三個(gè)cell元素為空。三個(gè)cell的尺寸不同,需要將′UniformOutput′參數(shù)設(shè)置為false。
例74:將cell中元素′a′替換為′b′。

tips:′UniformOutput′參數(shù)設(shè)置為false時(shí)返回cell類型,否則返回矩陣類型。
例75:判斷股票屬于上證(60開頭)還是深證A股(00或30開頭)并輸出。

1.7.6 實(shí)例20:用findgroups函數(shù)和splitapply函數(shù)做cell分組運(yùn)算
findgroups函數(shù)可以將cell按照指定列值進(jìn)行分組;splitapply則可以對(duì)分組進(jìn)行函數(shù)運(yùn)算。
例76:計(jì)算分組均值。

findgroups函數(shù)也支持?jǐn)?shù)值行或列向量的分組,如:
>>findgroups([1;1;2;2;2])
>>findgroups([1,1,2,2,2])
findgroups函數(shù)不支持字符格式的行或列向量,如findgroups([′a′;′a′;′b′])會(huì)報(bào)錯(cuò),需要使用cellstr函數(shù)將輸入轉(zhuǎn)換為cell。
>>findgroups(cellstr([′a′;′a′;′b′]))
- 成交力
- 下一波榮景的主題投資
- 最牛投資客
- 危機(jī)透視
- 貨幣大師
- 完勝資本2:公司投融資模式流程完全操作指南(第四版)
- 新會(huì)計(jì)準(zhǔn)則下金融企業(yè)會(huì)計(jì)實(shí)務(wù)
- 中國銀行業(yè)專業(yè)人員職業(yè)資格考試真考題庫+押題試卷:風(fēng)險(xiǎn)管理
- 類型思維下的“金融消費(fèi)者”:從語詞到制度
- 私募基金業(yè)績?cè)u(píng)價(jià)
- 金格格理財(cái)逆襲記
- 投資交易筆記:2002-2010年中國債券市場(chǎng)研究回眸
- 跨境并購的十堂必修課
- 風(fēng)險(xiǎn)投資與債券風(fēng)險(xiǎn)溢價(jià):基于機(jī)構(gòu)投資者視角
- 中國普惠金融創(chuàng)新報(bào)告(2020)