Я пытаюсь объединить две матрицы, которые используют одни и те же значения в нескольких столбцах.Присоединить матрицы с одинаковыми значениями в разных векторах в MATLAB
Следующие матрицы должны служить примером моей проблемы и предоставить MWE. Тем не менее, мои данные очень длинны size(500000, 4)
, поэтому я ищу эффективный способ их слияния. Данные состоят из опционных данных, где c
являются вызовами и p
помещают данные, со столбцами 1:4
: дата, забастовка, истечение, цена предложения. В конце концов, я хотел бы иметь матрицу с колонками 1:5
: дата, забастовка, истечение срока, цена bid-bid, цена bid-bid. Как показано в MWE, данные не имеют одинаковой длины, но каждая комбинация столбцов 1:3
(дата, забастовка, истечение срока действия) существует только один раз.
c = [7356011 300 7356081 1.15; 7356011 400 7356081 1.56; 7356011 500 7356081 1.79; 7356011 300 7356088 1.25; 7356011 400 7356088 1.67; 7356011 500 7356088 1.89; 7356011 600 7356088 1.92; 7356012 300 7356081 0.79; 7356012 400 7356081 0.99; 7356012 500 7356081 1.08; 7356012 300 7356088 0.81; 7356012 400 7356088 0.90; 7356012 500 7356088 1.07]
p = [7356011 300 7356081 1.35; 7356011 400 7356081 1.15; 7356011 500 7356081 1.03; 7356011 300 7356088 1.56; 7356011 400 7356088 1.15; 7356011 500 7356088 1.03; 7356012 300 7356081 1.25; 7356012 400 7356081 1.19; 7356012 500 7356081 1.02; 7356012 300 7356088 1.14; 7356012 400 7356088 0.98; 7356012 500 7356088 0.76; 7356012 600 7356088 0.56; 7356012 700 7356088 0.44]
Я пытался построить идентификатор для каждого столбца, с помощью strcat
и num2str
, а также получение «идентификатор (1) = 73560113007356081», однако это занимает очень много времени для большого количества данные. Я также пытался найти решение, используя unique
и ismember
, но имел проблемы с несколькими столбцами.
Хотела выход будет:
7356011 300 7356081 1.15 1.35 7356011 400 7356081 1.56 1.15 7356011 500 7356081 1.79 1.03 7356011 300 7356088 1.25 1.56 7356011 400 7356088 1.67 1.15 7356011 500 7356088 1.89 1.03 7356011 600 7356088 1.92 NaN 7356012 300 7356081 0.79 1.25 7356012 400 7356081 0.99 1.19 7356012 500 7356081 1.08 1.02 7356012 300 7356088 0.81 1.14 7356012 400 7356088 0.90 0.98 7356012 500 7356088 1.07 0.76 7356012 600 7356088 NaN 0.56 7356012 700 7356088 NaN 0.44
Спасибо за любую помощь
Почему ваша искомая матрица имеет NaNs? – SamuelNLP
получил это, неважно. – SamuelNLP