Если значения для PAR
идентичны для каждого периода времени (как в вашем примере).Тогда вы можете использовать unique
и table/join
для построения вашей транспонированной таблицы.
Сначала используйте unique
, чтобы получить имена столбцов из столбца time
и значения для столбца PAR
.Например,
T = readtable('data.txt');
var_names = unique(T.TIME);
row_values = unique(T.PAR);
Затем создайте базовую таблицу со значениями PAR
в качестве первого столбца
pivotTable = table(row_values,'VariableNames',{'PAR'});
Теперь вы можете перебирать имена переменных, используя join
, чтобы добавить этив качестве переменных к базовой таблице.Этот цикл будет иметь следующие элементы
- Выбор строк для определенного
time
для создания вложенной таблицы для одного набора time
значений - Установка таблиц
ETS
имя столбца с текущим time
значением.Обратите внимание, что значения времени, такие как 01:30
, не являются допустимыми именами переменных.Таким образом, вы можете использовать matlab.lang.makeValidName
для преобразования этих значений в соответствующие имена для столбцов таблицы. - Используйте объединение, чтобы добавить эту вложенную таблицу в базовую таблицу
Здесьпример того, как это будет работать:
for v = var_names'
selected_rows = strcmp(T.TIME,v{1});
subTable = T(selected_rows,{'PAR', 'ETS'});
subTable.Properties.VariableNames{2} =matlab.lang.makeValidName(v{1});
pivotTable = join(pivotTable,subTable);
end