Error in Using interp1
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello everyone i have an array named 'x' and trying to interpolate it but i am getting an error as "Interpolation requires at least two sample points in each dimension." Here is my code;
x_1 = interp1(0:duration*44100,X,0:1:duration*44100,'linear');
I need to resize x array to (duration * 44100). Any help would be great. Thanks.
2 Kommentare
Geoff Hayes
am 29 Mai 2016
ugurcan - what can you tell us about duration and X? It would be interesting to know what duration is so that we can determine the range of
0:duration*44100
and how many elements are in X.
Antworten (2)
Walter Roberson
am 29 Mai 2016
That code does not show an interp1 ?
If the duration being interpolated over is the output of the ode45 call, then note that it is a vector, not a scalar.
Your X is going to be a column vector: it could make a difference to interp1 to transpose it to be a row vector.
0 Kommentare
Image Analyst
am 30 Mai 2016
You vectors are wrong, especially the first arg to interp1(). This works:
duration = 2;
X = audioread('guitartune.wav'); % Read sample data.
% Define how you want to resample it
resamplingVector = 1 : (duration * 44100);
% Now to the interpolation.
x_1 = interp1(1:length(X), X, resamplingVector,'linear');
0 Kommentare
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!