how can i add two matrix vertically with different column
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponse acceptée
madhan ravi
le 12 Sep 2019
Modifié(e) : madhan ravi
le 12 Sep 2019
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))]
Plus de réponses (2)
Adam Danz
le 12 Sep 2019
Bpad = padarray(B,[0,numel(A)-numel(B)],'post');
C = [A;Bpad]
2 commentaires
Bruno Luong
le 12 Sep 2019
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
Voir également
Catégories
En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!