2013-03-20 139 views

回答

1

作出這樣

function out = cat2(a, b) 

    diff = length(a) - length(b) 
    if diff > 0 
     b = [b, nan(1, diff)]; 
    else 
     a = [a, nan(1, -diff)]; 
    end 

    out = [a;b]; 

end 

功能(也可加一個檢查來處理列向量太)

cat2([1 2 3 4], [1 2]) 

ans = 

    1  2  3  4 
    1  2 NaN NaN 
3

這可能有助於

a = [1 2 3 4]; 
b = [1 2]; 
c = a; 
c(2,1:length(b)) = b; 

c = 

1  2  3  4 
1  2  0  0 

然後,如果你願意寧可有NaN而不是0,你可以做下面的評論Dennis Jaheruddin建議的。

+0

+1而且還有'c(2,1:length(b))= b;'使其'自動化'。 – Dan 2013-03-20 09:48:26

+0

好點丹,我會更新我的答案,以納入(即竊取)你的想法。 – 2013-03-20 10:43:05

+2

'NaN'解決方案也將替換原始向量中的零,這可能是不可取的。我會建議'c(2,長度(b)+1:結束)= NaN' – 2013-03-20 10:57:43