Combining multiple matrices into a single vector
15 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi there,
have some matrices that I would like to combine into a single vector. For example:
T1 = [2 3;
4 2]
T2 = [1 7;
9 4]
T3 = [5 5;
1 4]
I do not want to add them together like it does here:
T = [T1 T2 T3]
Rather I want to store them is such a way that I can index them in a loop
How can I accomplish this?
Many thanks
2 commentaires
Katy
le 29 Sep 2023
Hi Scott-
How do you want the final matrix to look? Can you provide an example of the desired final matrix?
Is it a single row? Or a combined matrix?
Thanks,
Katy
Réponse acceptée
Plus de réponses (1)
Katy
le 29 Sep 2023
Modifié(e) : Katy
le 29 Sep 2023
If I am understanding the question correctly, here's one way to store them as a single vector (T_vec).
It requires storing the inputs in a cell array rather than separate matrices.
Let me know if this solves your question!
T{1,1} = T1;
T{2,1} = T2;
T{3,1} = T3;
T_vec = [];
for i = 1:length(T)
temp = T{i,1};
sz_temp = size(temp);
rows = sz_temp(1,1);
col = sz_temp(1,2);
for j = 1:rows
for p = 1:col
T_vec = [T_vec temp(j, p)];
end
end
end
1 commentaire
Voss
le 29 Sep 2023
Modifié(e) : Voss
le 29 Sep 2023
@Katy: That can be simplified a bit:
T1 = [2 3;
4 2];
T2 = [1 7;
9 4];
T3 = [5 5;
1 4];
T = {T1;T2;T3};
for ii = 1:numel(T)
T{ii} = reshape(T{ii}.',1,[]);
end
T_vec = [T{:}]
Or, to simplify even further:
T = {T1;T2;T3};
T_vec = reshape(vertcat(T{:}).',1,[])
Voir également
Catégories
En savoir plus sur Logical 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!