How to combine multiple nx1 size of matrix into one matrix

15 vues (au cours des 30 derniers jours)
NG
NG le 12 Août 2014
Commenté : tran thang le 10 Oct 2015
As topic mentioned, i want to combine a matrix from many nx1 size matrix, i would like to have a script
Many Thnkas, Alex
  3 commentaires
NG
NG le 12 Août 2014
For example, I got matrix A, A=[1;2;3], and B, B=[4;5;6;7]. I want to combine them to be matrix C, C=[1;2;3;4;5;6;7], but now i got many matrix with differnet number of rows. How can i combine them ? Thanks!
tran thang
tran thang le 10 Oct 2015
Hi! You can reference my code! Good lucky! >> a{1} = [1 1 1;1 1 1]; >> a{1}
ans =
1 1 1
1 1 1
>> a{2} = [2 2 2;2 2 2]; >> a{3} = [3 3 3]; >> a{4} = [4 4 4;4 4 4;4 4 4]; >> a{5} = [5 5 5;5 5 5]; >> A = vertcat(a{:})
A =
1 1 1
1 1 1
2 2 2
2 2 2
3 3 3
4 4 4
4 4 4
4 4 4
5 5 5
5 5 5

Connectez-vous pour commenter.

Réponse acceptée

Matt J
Matt J le 12 Août 2014
could you plz exlpain more about vertcat(matrices{:}); by showing an example.
>> matrices={[1,2;3 4],[5,6;7,8]};
>> vertcat(matrices{:})
ans =
1 2
3 4
5 6
7 8
  6 commentaires
NG
NG le 12 Août 2014
Ok! Thanks !
Michael Haderlein
Michael Haderlein le 12 Août 2014
The first step to fix it is to show the code which is throwing this error ;-)

Connectez-vous pour commenter.

Plus de réponses (3)

Azzi Abdelmalek
Azzi Abdelmalek le 12 Août 2014
Modifié(e) : Azzi Abdelmalek le 12 Août 2014

Joakim Magnusson
Joakim Magnusson le 12 Août 2014
Modifié(e) : Joakim Magnusson le 12 Août 2014
Where do you have your matrices? If you can get them into cell arrays like this:
matrices = cell(1,2);
matrices{1} = A;
matrices{2} = B;
C = [];
Then you could do like this:
for i = 1:size(matrices,2)
C = [C ;cell2mat(matrices(i))]
end
I'm not sure how you want to combine your matrices but hope this was at least a little helpful.
  4 commentaires
NG
NG le 12 Août 2014
Matt , could you plz exlpain more about vertcat(matrices{:}); by showing an example. Thank You!
Michael Haderlein
Michael Haderlein le 12 Août 2014
Thanks @Matt, I didn't use cell2mat a lot, so I didn't think about it too much. Your solution is very elegant.

Connectez-vous pour commenter.


Joakim Magnusson
Joakim Magnusson le 12 Août 2014
Modifié(e) : Joakim Magnusson le 12 Août 2014
Sorry, i want to clarify that now i am using a loop to generate matrices out and then store them into a new matrix .Can i still use vertcat?
NG, do you mean like this?
B = [];
for i = 1:10
A = magic(4);
A(:, 2:4) = [];
B = vertcat(B, A);
end
  2 commentaires
Matt J
Matt J le 12 Août 2014
That would not be recommendable. With B growing inside the loop, you will be doing a lot of repeated memory re-allocation.
Joakim Magnusson
Joakim Magnusson le 12 Août 2014
ah, okay!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by