2014-06-24 70 views

回答

3

試試:

reshape(mat2cell(dec2bin(A+B), ones(numel(A),1)), size(A)) 

或來自Rody的更簡潔的建議:

reshape(num2cell(dec2bin(A+B), 2), size(A)) 
+1

+1,但我會改變內部部分爲'num2cell(dec2bin(A + B),2)' –

+0

也:您的解決方案消耗576字節,而全邏輯解決方案消耗18個字節......事實上,基於單元的解決方案總是消耗比純邏輯解決方案多32倍的內存。這可能不是一件壞事(問題不是很明確),但對某人來說可能很重要:) –

+0

如何將它擴展到三個或更多的矩陣? 一旦元素在單元陣列中,我無法像以前那樣對它們進行操作 – naman

2

記住3種方法;這取決於你想要的究竟是

% Example data (make them logical to save space) 
A= [1 0 0 
    0 1 0 
    1 1 0] == 1; 

B= [1 1 0 
    0 0 1 
    1 0 0] == 1; 

%# Method 1 
cols = size(A,2) + size(B,2); 
C1(:, 1:2:cols) = A; 
C1(:, 2:2:cols) = B 


%# Method 2 
C2 = cellfun(@horzcat, num2cell(A),num2cell(B), 'UniformOutput',false) 
C2{:,1} 

%# Method 3 (same as 2, really, but simpler) 
C3 = strcat(num2cell(A), num2cell(B)) 
C3{:,1} 
+0

謝謝。第二種方法有所幫助。雖然我需要存儲在單元格數組中的元素作爲字符串。應該提到這一點。反正丹的答案涵蓋了這一點。 – naman