2014-05-19 61 views
2

我有一個單元陣列C = cell(815,2,14),數據如下例所示。MatLab:繪製具有混合類型數據的單元陣列

第一列表示觀察,而第二列表示該觀察的發生次數。觀察由兩個浮點值組成,這些浮點值表示3D條形圖內的座標。 3D條的兩個軸都有一個從[0,1]開始的間隔。

我想使用第一列的座標創建一個三維條形圖,並使用第二列的出現次數作爲z軸。

情節應該是這樣的:enter image description here

C(:,:,1) = 

'[1 1]'   [511553] 
'[0 0]'   [508759] 
'[0.85 0.95]'  [ 1675] 
'[0.7 0.75]'  [ 582] 
'[0.55 0.75]'  [ 359] 
.... 

C(:,:,2) = 

'[1 1]'   [621836] 
'[0 0]'   [571582] 
'[0.85 0.95]'  [ 2134] 
'[0.7 0.75]'  [ 832] 
'[0.55 0.75]'  [ 234] 
.... 

. 
. 
. 

.... 

C(:,:,14) = 

'[1 1]'   [511553] 
'[0 0]'   [508759] 
'[0.85 0.95]'  [ 1675] 
'[0.7 0.75]'  [ 582] 
'[0.55 0.75]'  [ 359] 
.... 
+2

的數據不應該是電池陣列,他們應該?我認爲你必須將數據放在矩陣中進行繪圖,然後再修改標籤。 – kkuilla

回答

-1
a{1,1} = [5 4 3 2]; 
a{2,1} = []; 
a{3,1} = [5 4 3 2 8]; 
a{4,1} = [5 3 ]; 
a{5,1} = [5]; 
a{6,1} = [3 4 5 6 7 8]; 
a{7,1} = [5 3 2]; 

lns = cellfun(@length,a); 
mx = max(lns); 
mat = NaN; 

for ii = 1:numel(a); 
    a{ii,1} = [a{ii,1} mat(1,ones(1,mx-lns(ii)))];  
end  

array_vec=cell2mat(a);