2013-02-05 38 views
0

我有尺寸5×3的矩陣F例如:如何在MATLAB中連接矢量和單元格?

F= [1 12 13; 
    2 23 24; 
    3 34 35; 
    4 45 46; 
    5 56 57] 

,我有大小1X1與條目「V」的標籤細胞即

>> label 

    label = 

     'v' 

和F的給定大小由:

>> [m n]=size(F) 

    m= 

     5 

    n = 

     3 

我希望我的輸出看起來像:

>> F 

    F = 

     1 12 13 v 
     2 23 24 v 
     3 34 35 v 
     4 45 46 v 
     5 56 57 v 

如何連接單元格與矩陣以獲得此輸出?

+0

標籤真的是一個細胞或只是一個字符? –

+0

@ DennisJaheruddin:從顯示的輸出中,它非常清楚地是一個單元格。如果是'char','v'周圍就不會有任何撇號。 – Jonas

回答

4

要創建一個包含數字和非數字數據的數組,你需要把一切都變成單元陣列(由{label}的情況下,更換label它不是一個單元陣列):

Fcell = [ num2cell(F), repmat(label,size(F,1),1)] 

然後,您可以使用大括號來訪問單個數字/字母:

Fcell{2,2} 

ans = 
    23 
+1

@DennisJaheruddin:如果'label'不是一個單元格,那麼'{label}'將解決這個問題。然而,OP狀態和'disp'輸出確認它實際上是一個單元陣列。 – Jonas

+0

@丹尼斯:我回滾了你的編輯,因爲我不認爲這是必要的。我已經添加了一個註釋來澄清,雖然 – Jonas

+0

道歉,我誤解了這個問題。 –

0

由於@Jonas描述,將其轉換爲細胞是去當您要訪問的數據,進一步使用方式。 但是,如果你在看到屏幕上的數據只是感興趣,不喜歡括號這也是一種選擇:如果您的標籤實際上是它應該工作這樣一個char

Fcell = [num2str(F) repmat([' ' label{1}],size(F,1),1)] 

Fcell = [num2str(F) repmat([' ' label],size(F,1),1)] 
+0

標籤是一個單元格,我運行代碼:Fcell = [num2str(F)repmat([''{label}],size(F,1),1)];但是給我錯誤:使用horzcat的錯誤 CAT參數維度不一致。 – Dev

+0

@Dev我已更新我的帖子,現在括號應正確使用。 –

+0

謝謝!!,它的工作原理和給出的輸出結果與我的問題中顯示的相同,但是輸出結果是char類。如果我訪問Fcell(2,2)而不是23. Jonas創建單元格的方式產生Fcell {2,2} = 23。 – Dev