Add nan matrix where I have no data
1 view (last 30 days)
Show older comments
kounoupaki87
on 21 May 2020
Commented: kounoupaki87
on 21 May 2020
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 Comment
Walter Roberson
on 21 May 2020
Perhaps create a timetable object and retime() with method 'fillwithmissing'
Accepted Answer
Cris LaPierre
on 21 May 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)
More Answers (0)
See Also
Categories
Find more on Dates and Time in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!