how can i add two matrix vertically with different column

Hello,
how can i add two matrix vertically with different column?
please help
thank you
like this example:
A=[1 3 6 8 9]
B=[1 2]
Result= 1 3 6 8 9
1 2 0 0 0

댓글 수: 2

What have you tried already? What problems do you have?
i used of vertcat and get me this error:
Error using vertcat
Dimensions of matrices being concatenated are not consistent.

댓글을 달려면 로그인하십시오.

 채택된 답변

madhan ravi
madhan ravi 2019년 9월 12일
편집: madhan ravi 2019년 9월 12일
m = max(numel(A),numel(B));
% Method 1
Wanted = reshape([A(:);B(:);zeros(m-numel(B),1)],[],2).'
% Method 2
w = cellfun(@(x)[x,zeros(1,m-numel(x))],{A,B},'un',0);
Wanted = cat(1,w{:})
% Method 3
Wanted = zeros(2,m);
Wanted(1,:) = A;
Wanted(2,1:numel(B)) = B
% Method 4
Wanted = [A;B,zeros(1,m-numel(B))]

추가 답변 (2개)

Adam Danz
Adam Danz 2019년 9월 12일
Bpad = padarray(B,[0,numel(A)-numel(B)],'post');
C = [A;Bpad]

댓글 수: 2

Thank you very much for helping me.
It was very useful
Glad I could help!

댓글을 달려면 로그인하십시오.

Bruno Luong
Bruno Luong 2019년 9월 12일
I would do with the old well-served for-loop
C={A B}; % put the list of your matrices here
m=cellfun('size',C,1);
n=cellfun('size',C,2);
Results=zeros(sum(m),max(n));
r=0;
for k=1:length(C);
Results(r+(1:m(k)),1:n(k))=C{k};
r=r+m(k);
end

카테고리

도움말 센터File Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기

태그

질문:

2019년 9월 12일

댓글:

2019년 9월 12일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by