insert datetime in array
    3 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Trop Trader
 el 27 de Feb. de 2024
  
    
    
    
    
    Comentada: Voss
      
      
 el 27 de Feb. de 2024
            how can i insert  datetime  in the datetime array?
Example: insert  2008-03-28 in array
result: 2008-01-05    2008-02-02   2008-03-01  2008-03-28   2008-04-05 ........

0 comentarios
Respuesta aceptada
  Voss
      
      
 el 27 de Feb. de 2024
        
      Editada: Voss
      
      
 el 27 de Feb. de 2024
  
      I assume the array is sorted and needs to remain sorted after inserting the new element.
One easy way is to concatenate the new element with the array and then sort that new array:
% a datetime array:
fmt = 'uuuu-MM-dd';
dt_array = datetime({'2008-01-05','2008-02-02','2008-03-01','2008-04-05'},'InputFormat',fmt)
% a datetime scalar:
new_dt = datetime('2008-03-28','InputFormat',fmt)
% concatenate and sort:
dt_array = sort([dt_array new_dt])
1 comentario
  Voss
      
      
 el 27 de Feb. de 2024
				Another more involved way is to find where the new element belongs in the array and insert it there:
% a datetime array:
fmt = 'uuuu-MM-dd';
dt_array = datetime({'2008-01-05','2008-02-02','2008-03-01','2008-04-05'},'InputFormat',fmt)
% a datetime scalar:
new_dt = datetime('2008-03-28','InputFormat',fmt)
% make sure the array is sorted
if ~issorted(dt_array)
    % and sort it if not
    dt_array = sort(dt_array);
end
% find the index of the first element of dt_array later than new_dt
idx = find(dt_array > new_dt, 1);
% if there are no elements later than new_dt
if isempty(idx)
    % then new_dt goes on the end
    idx = numel(dt_array)+1;
end
% insert dt_new at index idx in dt_array
dt_array = [dt_array(1:idx-1) new_dt dt_array(idx:end)]
Más respuestas (0)
Ver también
Categorías
				Más información sobre Shifting and Sorting Matrices 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!