Форматирование данных из таблицы Excel (два критерия) в MATLAB

У меня есть вопрос, связанный с другим, недавно заданным. Я загружаю свои данные как csv.file, Я тогда форматирую это в MATLAB. Я отформатировал данные, такие как:

Я хотел бы отформатировать данные так, чтобы я получил:

Другими словами, дата должна быть в первом столбце, а два идентификатора должны быть в первых двух строках соответственно.

Я попробовал код, предоставленный @gnovice, но у меня есть проблемы с настройкой второго идентификатора. Код является:

A = accumarray([rowIndex colIndex], data(:, 4), [], @(x) x(1));
A = [NaN colVals; rowVals A];

где data соответствует рисунку (1).

Поэтому получаю матрицу A лайк:

 A = 
      NaN     1    2     3;
 20160101   100   80    90;
 20170101   150   90   200;

Как я могу настроить свой код так, чтобы заботился о втором идентификаторе и A будет выглядеть так:

 A = 
      NaN     1    2     3;
      NaN    10   10    15;
 20160101   100   80    90;
 20170101   150   90   200;

2 ответа

Решение

Ответ от albusSimba указывает в правильном направлении. Вы хотите собрать столбцы, содержащие ваши идентификаторы (т.е. data(:, [1 3])), передать это unique с 'rows' возможность найти уникальные комбинации строк, а затем захватить третий вывод для использования в качестве индекса для агрегирования по accumarray, Ваше окончательное форматирование матрицы будет просто необходимо изменить, чтобы учесть второй идентификатор:

[rowVals, ~, rowIndex] = unique(data(:, 2));
[colVals, ~, colIndex] = unique(data(:, [1 3]), 'rows');
A = accumarray([rowIndex colIndex], data(:, 4), [], @(x) x(1));
A = [NaN colVals(:, 1).'; NaN colVals(:, 2).'; rowVals A];

И результат для ваших образцов данных:

A =

         NaN           1           2           3
         NaN          10          10          15
    20160101         100          80         200
    20170101         150          90         200

Вы можете использовать этот код

C = unique([identifier_1,identifier_2],'rows')

И соответственно отформатируйте ваши данные

Другие вопросы по тегам