Combining matrix of different dimension.

2 vues (au cours des 30 derniers jours)
Gratitude Kim
Gratitude Kim le 26 Juil 2017
I have three matrix. Matrix 1 = [2 2; 0 0],Matrix 2 =[1 1;0 0] and Matrix 3=[2 2 2 2 ;3 3 3 3] . I will like to combine these 3 matrix such that it becomes [2 2 0 0;0 0 0 0;1 1 0 0;0 0 0 0;2 2 2 2;3 3 3 3]. Appreciate your kind assistance. Thanks.

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 26 Juil 2017
m1 = [2 2; 0 0];
m2 =[1 1;0 0];
m3=[2 2 2 2 ;3 3 3 3];
C = {m1,m2,m3};
[r,c] = cellfun(@size,C);
m = max([r(:),c(:)]);
for ii = 1:numel(C)
if any([r(ii),c(ii)] < m)
C{ii}(m(1),m(2)) = 0;
end
end
out = cat(1,C{:})

Plus de réponses (1)

Moe_2015
Moe_2015 le 26 Juil 2017
Modifié(e) : Moe_2015 le 26 Juil 2017
One solution:
Matrix1 = [ 2 2; 0 0];
Matrix2 = [1 1;0 0];
Matrix3 = [2 2 2 2;3 3 3 3];
[reshape(Matrix1',1,4);zeros(1,4);reshape(Matrix2',1,4);zeros(1,4);Matrix3]
  2 commentaires
Gratitude Kim
Gratitude Kim le 26 Juil 2017
Thanks a lot.
Moe_2015
Moe_2015 le 26 Juil 2017
No problem!

Connectez-vous pour commenter.

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!

Translated by