Convert table with many rows to table with single row with data in sequence
14 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jasmyn Lee
el 17 de Ag. de 2022
Comentada: Jasmyn Lee
el 27 de Ag. de 2022
What is an efficient way to assign values from one table (many rows and columns) to a table with one row.
Table 1: 3 variables with 10 entries each (10 rows x 3 columns) - VarNames: Start, End, Time & all values are numbers
Table 2: I want to extract data from Table 1 and input the values into Table 2 - VarNames: Start1, End1, Time1, Start2, End2, Time2, ... Start10, End10, Time10
For example:

The goal is to create something like below so that every column in Table2 doesn't need to have its own line of code; but I'm not sure if that's possible or realistic to do.
T2 = table();
x = 1;
while x<11
T2.Start(x) = T1(x,1);
T2.End(x) = T1(x,2);
T2.Time(x) = T1(x,3);
x = x+1;
end
0 comentarios
Respuesta aceptada
Cris LaPierre
el 17 de Ag. de 2022
A bit convoluted, but should work.
% Create first table
Start = (11:10:101)';
End = Start+1;
Time = End+1;
T1 = table(Start,End,Time)
% Turn table into an array and transpose
d = table2array(T1)'
% create new variable names
varnm = ["Start";"End";"Time"] + (1:length(d));
% Build new table
T2 = array2table(d(:)','VariableNames',varnm(:))
3 comentarios
Cris LaPierre
el 18 de Ag. de 2022
Concatenate the two tables.
% First table
ParticipantNum = 1;
TrialNum = 15;
AvgTime = 7;
T1 = table(ParticipantNum,TrialNum,AvgTime)
% Second table
Start1 = 1;
End1 = 2;
Time1 = 3;
T2 = table(Start1,End1,Time1)
% Concatenate the tables together (must have same number of rows)
T3 = [T1,T2]
Más respuestas (1)
Ver también
Categorías
Más información sobre Structures 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!