How to interpolate in 3d?
47 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Shubham Mohan Tatpalliwar
el 18 de Feb. de 2019
Comentada: Akira Agata
el 21 de Feb. de 2019
I have a matrix in 100 distane and 10 distance which i want to interpolate to 1
but as it is a matrix i want to interpolate in 3D
I have tried it interpolating in 2D and getting some irregularities in the which can be seen in attached picture
The 2D code is as follows
[num] = xlsread('Mappe2.xlsx') ;
n = 860;
num1=num(2:87,2:26)';
B = interp1(1:size(num1, 2), num1.', linspace(1, size(num1, 2), n));
n = 250;
B1 = interp1(1:size(B, 2), B.', linspace(1, size(B, 2), n));
surf(1:860,1:250,B1,'edgecolor','none');
How to code further to avoid these irregularities?
I have also attached the Excel file feom the code
0 comentarios
Respuesta aceptada
Akira Agata
el 19 de Feb. de 2019
You can use scatteredInterpolant to do this task. The following is an example.
% Read data file
Data = xlsread('Mappe2.xlsx') ;
% Adjust data to grid data format
x = Data(1,2:end);
y = Data(2:end,1);
[xGrid,yGrid] = meshgrid(x,y);
zGrid = Data(2:end,2:end);
% Apply scatteredInterpolant function
idx = isnan(zGrid(:));
F = scatteredInterpolant(xGrid(~idx),yGrid(~idx),zGrid(~idx),...
'linear','linear');
% Interpolation (linear) and Extrapolation (linear)
zGridInterp = F(xGrid,yGrid);
% Show the result
figure
surf(xGrid,yGrid,zGridInterp,...
'EdgeColor', 'none',...
'FaceColor', 'interp')
view(2)
colorbar
4 comentarios
Akira Agata
el 21 de Feb. de 2019
OK, that's a piece of cake.
I have slightly modified to do that. I hope this will be some help!
% Read data file
Data = xlsread('Mappe2.xlsx');
Data = Data';
% Adjust data to grid data format
x = Data(1,2:end);
y = Data(2:end,1);
[xGrid, yGrid] = meshgrid(x,y);
zGrid = Data(2:end,2:end);
% Apply scatteredInterpolant function
idx = isnan(zGrid(:));
F = scatteredInterpolant(xGrid(~idx),yGrid(~idx),zGrid(~idx),...
'linear','linear');
% New grid
[xGrid2, yGrid2] = meshgrid(1:8500,1:240);
% Interpolation (linear) and Extrapolation (linear)
zGridInterp = F(xGrid2,yGrid2);
% Show the result
figure
surf(xGrid2,yGrid2,zGridInterp,...
'EdgeColor', 'none',...
'FaceColor', 'interp')
view(2)
colorbar
Más respuestas (0)
Ver también
Categorías
Más información sobre Data Preprocessing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!