Combining multiple matrices into a single vector
    15 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Scott Banks
 am 29 Sep. 2023
  
    
    
    
    
    Bearbeitet: Voss
      
      
 am 29 Sep. 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 Kommentare
  Katy
 am 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
Akzeptierte Antwort
Weitere Antworten (1)
  Katy
 am 29 Sep. 2023
        
      Bearbeitet: Katy
 am 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 Kommentar
  Voss
      
      
 am 29 Sep. 2023
				
      Bearbeitet: Voss
      
      
 am 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,[])
Siehe auch
Kategorien
				Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!




