Azzera filtri
Azzera filtri

Add nan matrix where I have no data

2 visualizzazioni (ultimi 30 giorni)
Hi,
  • I have a matrix (Data) which is (198x104x24): this contains data for January but some dates are missing.
  • I have these days in a different file (Missingdates): days where I don't have any data and I want to add nan matrix
I would like to have a matrix with dimensions: (198x104x31).
Example: I don't have any data for 02/01, so I would like to add a matrix (in the 3rd dimension) AddNan=nana(198,104);
  1 Commento
Walter Roberson
Walter Roberson il 21 Mag 2020
Perhaps create a timetable object and retime() with method 'fillwithmissing'

Accedi per commentare.

Risposta accettata

Cris LaPierre
Cris LaPierre il 21 Mag 2020
A bit convoluted, but try this. The main challenge is you don't have any dates associated with data, so creating that is a bit interesting.
load data.mat
load Missingdates.mat
% Create a vector of dates for the month
date = dateshift(Missingdates(1),"start","month"):days(1):dateshift(Missingdates(1),"end","month");
date(ismember(date,Missingdates))=[]; % delete the missing dates
date = [date Missingdates']; % Add missing dates to the end of the date vector
[~, ind]=sort(date); % determine the order to place the dates in
% Create the empty matrices and concatenate to data along 3rd dimension
newData = nan([size(data,1:2),length(Missingdates)]);
newData = cat(3,data, newData);
% redorder the 3rd dimension of data to place sheets in date order
newData = newData(:,:,ind)
  2 Commenti
kounoupaki87
kounoupaki87 il 21 Mag 2020
Something is wrong when concatenate arrays:/
kounoupaki87
kounoupaki87 il 21 Mag 2020
Oh Ok, just the size was opossite:) Thank you!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Dates and Time in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by