Union WITH repetitions - indices for both

3 visualizaciones (últimos 30 días)
Cary
Cary el 30 de Jul. de 2015
Comentada: Walter Roberson el 30 de Jul. de 2015
How can this be achieved? I am trying to index trading days and calendar days so I can match the two together. Here is my code:
tradeDates=tradeDates(:,1); % grab trading days
calDays=datetime([2008,08,25])+caldays(0:2522)'; % grab calendar days
calDays=yyyymmdd(calDays); % convert to yyymmdd format
[C,ia,ib]=union(tradeDates,calDays); % set union of arrays
Thank you.

Respuestas (1)

Walter Roberson
Walter Roberson el 30 de Jul. de 2015
C = union(tradeDates,calDays);
[tf, idxtrade] = ismember(C, tradeDates);
[tf, idxcal] = ismember(calDays, C);
  2 comentarios
Cary
Cary el 30 de Jul. de 2015
Thanks, I see that your code advice makes the tradeDates vector the same length as the calDays vector, but how do I generate an index for it? I am having a lot of trouble with this.
Walter Roberson
Walter Roberson el 30 de Jul. de 2015
Sorry I was inconsistent there as I was trying both ways and forgot to edit properly.
C = union(tradeDates,calDays);
[tf, idxtrade] = ismember(tradeDates, C);
[tf, idxcal] = ismember(calDays, C);
idxtrade(K) will be the index of tradeDates(K) within the union C, and idxcal(L) will be the index of calDays(L) within C.
I found it ambiguous as to what you wanted the result to be, the index of what into which?

Iniciar sesión para comentar.

Categorías

Más información sobre Calendar en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by