4
我喜歡在MATLAB中合併兩個不同尺寸的矩陣,而不使用循環,因爲我已經用循環完成了它。如何在matlab中合併兩個不同尺寸的矩陣
下圖顯示了我想實現的目標。
我也試過這個鏈接,但是這不是我想要的:Merging two matrices of different dimension in Matlab?
這是我嘗試用循環來做到這一點:
A=zeros(2,9)-1;
B=ones(6,3);
disp(A);
disp(B);
C=zeros(max(size(A,1),size(B,1)),max(size(A,2),size(B,2)));
for i=1:1:size(A,1)
C(i,:)=A(i,:);
end
for i=1:1:size(B,2)
C(:,i)=B(:,i);
end
disp(C);
所需的輸出應該是像這樣:
A:
-1 -1 -1 -1 -1 -1 -1 -1 -1
-1 -1 -1 -1 -1 -1 -1 -1 -1
B:
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
C:
1 1 1 -1 -1 -1 -1 -1 -1
1 1 1 -1 -1 -1 -1 -1 -1
1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0
1 1 1 0 0 0 0 0 0
但是,我在不使用循環的情況下尋找更好的方法。
如何我可以在矩陣維的基礎上概括這個2&3的值嗎?C(1:2,:) = A; C(:,1:3)= B;如果我分別採取A和B的最小尺寸,一般情況下是否正確? –
@ShvetChakra我編輯了代碼以使其更一般。這將首先檢查'A'中的總行數,並用'C'替換這些行。之後,我們查看'B'中的總列數,並用'C'替換這些列。沒有錯誤檢查,因此您需要確保'A'中的總行數和'B'中的總列數可以放在'C'的正確維度中,但是您在創建時確保這一點在任何情況下都是最初的'C'矩陣。 – rayryeng