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 Comments

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.

Sign in to comment.

 Accepted Answer

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))]

More Answers (2)

Bpad = padarray(B,[0,numel(A)-numel(B)],'post');
C = [A;Bpad]

2 Comments

Thank you very much for helping me.
It was very useful

Sign in to comment.

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

Categories

Tags

Community Treasure Hunt

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

Start Hunting!