How do I take a small array, keyed by a datetime variable which is a subset of a larger array and replace the values in the larger array with the values from the smaller array?
    4 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
What is the best way to take an table which is keyed by a datetime variable and replace the data in a much larger taable (same variables in both) with the data in the smaller table? The smaller table could fall anywhere in the larger table's date range but the smaller table will be made up of contiguous dates.
0 Commenti
Risposta accettata
  Guillaume
      
      
 il 14 Mag 2018
        [isinsmall, where] = ismember(bigtable.datevariable, smalltable.datevariable);
bigtable(isinsmall, :) = smalltable(where, :);
Assuming both tables have the same variable names.
0 Commenti
Più risposte (2)
  Ameer Hamza
      
      
 il 14 Mag 2018
        If both tables have same variable names, you can insert the small table inside large table much like inserting rows inside the matrix. For example
bigTable = ... % you big table
smallTable = ... % your small table
newBigTable = [bigTable(1:5, :); smallTable; bigTable(5:end, :)];
this will insert small table after 5 rows of the large tables and then insert the remaining large table at the end.
2 Commenti
  Ameer Hamza
      
      
 il 14 Mag 2018
				In that case, refer to @Guillaume's answer. It will overwrite the values in the big table with values in the small table.
  Peter Perkins
    
 il 14 Mag 2018
        The answer might be join, or maybe outerjoin. It might also be synchronize. It's hard to tell from your question.
0 Commenti
Vedere anche
Categorie
				Scopri di più su Tables in Help Center e File Exchange
			
	Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


