2014-01-14 24 views
0

我想將一個數組複製到連續的單元位置。例如:將數組複製到matlab中的多個單元中for循環(可能與交易功能)

A = cell(2,4); 

for m = 1:2 

    if condition == true 
    A{m,1:2} = [1 1 1]; 
    A{m,3:end} = [4]; 
    else 
    A{m,:} = [2 2]; 
    end 
end 

我想爲條件的最終狀態=真爲M = 1,假爲M = 2,看起來像這樣:

A = {{[1 1 1], [1 1 1], [4], [4]},... 
    {[2 2], [2 2], [2 2], [2 2]}} 

我希望我的語法是正確的結束結果... 看起來交易可能會有所幫助,但無法用A上的雙重索引完全弄清楚。 同樣,不尋找for循環解決方案。

任何幫助,非常感謝。

+0

你期望的輸出創建嵌套電池陣列,但你的代碼表明你正在試圖創建一個細胞矩陣。這將是'A = {[1 1 1],[1 1 1],[4],[4]; [2 2],[2 2],[2 2],[2 2]}' – Daniel

回答

1

您可以填寫一個單元陣列有重複的元素,使用:

A(1,1:2)=repmat({[1,1,1]},1,2) 
A(1,3:end)=repmat({[4]},1,2) 
A(2,:)=repmat({[2,2]},1,4) 
+0

謝謝。我錯過了等式左邊的大括號切換到括號。 –