1
是否可以自動將矩陣中長度不相同的矢量添加到一起?Matlab:將不同長度的矢量添加到矩陣中
即:
a = [1 2 3 4]
b = [1 2]
我怎樣才能使C爲:
c = [1 2 3 4 ; 1 2 0 0]
或
c = [1 2 3 4 ; 1 2 NaN NaN]
或類似的東西
感謝
是否可以自動將矩陣中長度不相同的矢量添加到一起?Matlab:將不同長度的矢量添加到矩陣中
即:
a = [1 2 3 4]
b = [1 2]
我怎樣才能使C爲:
c = [1 2 3 4 ; 1 2 0 0]
或
c = [1 2 3 4 ; 1 2 NaN NaN]
或類似的東西
感謝
作出這樣
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
這可能有助於
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建議的。
+1而且還有'c(2,1:length(b))= b;'使其'自動化'。 – Dan 2013-03-20 09:48:26
好點丹,我會更新我的答案,以納入(即竊取)你的想法。 – 2013-03-20 10:43:05
'NaN'解決方案也將替換原始向量中的零,這可能是不可取的。我會建議'c(2,長度(b)+1:結束)= NaN' – 2013-03-20 10:57:43