One dimensional interpolation of a two dimensional matrix
8 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mohammed Yousuf
am 7 Mär. 2021
Kommentiert: Mohammed Yousuf
am 7 Mär. 2021
I have a matrix of 24x365, i want to increase it to 1440x365 by interpolating 59 values in between every two values rowwise. because i have a hourly data of one year. (24 hours) 365 (days). I need minute wise data so one point has to become 60 points..
2 Kommentare
Stephen23
am 7 Mär. 2021
Bearbeitet: Stephen23
am 7 Mär. 2021
The expected output size does not match your explanation. If you add 59 values between any two existing adjacent values (exactly as your state), then you will actually get an output matrix with
23*60+1 % rows
not
24*60 % rows (incorrect)
This is probably because you have not considered the ends (e.g. requiring extrapolation before/after the existing values).
"I need minute wise data so one point has to become 60 points."
Have you considered what happens at the edges of your data?
Here is a simple demonstration of your explanation and the corresponding output matrix size. Here is a 1x4 vector:
X = [0, 3, 6, 9];
Now lets add two points between adjacent existing values, exactly as you specify:
Y = [0,1,2,3,4,5,6,7,8,9];
The output vector actually has
N = numel(X); % number of existing points
P = 2; % number of points added
(N-1)*(P+1)+1 % number of output points
Lets check this value against your estimation:
numel(Y)
N*(P+1) % your approach
Akzeptierte Antwort
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Interpolation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!