Combining multiple matrices into a single vector
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Scott Banks
el 29 de Sept. de 2023
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 comentarios
Katy
el 29 de Sept. de 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
Respuesta aceptada
Más respuestas (1)
Katy
el 29 de Sept. de 2023
Editada: Katy
el 29 de Sept. de 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 comentario
Voss
el 29 de Sept. de 2023
Editada: Voss
el 29 de Sept. de 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,[])
Ver también
Categorías
Más información sobre Logical en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!