How to fix this error in interpolation?
Ältere Kommentare anzeigen
Hi,
I have a set of data to be interpolated for two files. I could use the code below when the second file (representing Y axis) has 11 columns.
However, when the second file (representing Y axis) has only two columns, it shows the following error:
Error using griddedInterpolant
The grid vectors must contain unique points.
Error in interp1 (line 151)
F = griddedInterpolant(X,V,method);
Error in File11 (line 18)
x2 (k,:) = interp1(y3, x3, A(:,i), 'linear');
clear; clc;
Folder = cd;
N=1;
x2 = zeros(N, 10);
for k = 1:N;
Driftt = sprintf('Drift%d.out', k);
Reactt = sprintf('React%d.out', k);
matDrift = importdata(fullfile(Folder, Driftt));
matReact = importdata(fullfile(Folder, Reactt));
x1= matDrift(:,2);
y1= -matReact(:,2);
[x3, ix] = unique(x1);
y3 = y1(ix);
A=dlmread('result_all.txt');
for i=1:size(A,2)
x2 (k,:) = interp1(y3, x3, A(:,i), 'linear');
temp=x2(k,:);
temp(isnan(temp))=0.05;
x2(k,:)=temp;
fid=fopen(['result_' num2str(i) '.txt'],'a');
fprintf(fid,'%f\n',x2(k,:));
fclose(fid);
end
end
1 Kommentar
Ismail Qeshta
am 20 Feb. 2019
Antworten (1)
interp1 is complaining that y3 has repeated elements. They are required to be unique and monotonic.
3 Kommentare
Ismail Qeshta
am 19 Feb. 2019
Bearbeitet: Ismail Qeshta
am 20 Feb. 2019
Matt J
am 19 Feb. 2019
Nope.
K>> numel(y3)
ans =
267
K>> numel(unique(y3))
ans =
266
Ismail Qeshta
am 20 Feb. 2019
Kategorien
Mehr zu Interpolation of 2-D Selections in 3-D Grids finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!