Matlab - Interpolación 3D entre matrices de distinta dimensión

 
Vista:

Interpolación 3D entre matrices de distinta dimensión

Publicado por EduardoM (2 intervenciones) el 16/12/2012 12:07:55
Tenemos 2 matrices divididas en vectores. Ambas matrices tienen distinta dimension y correspondes a coordenadas en 3D. Necesitamos realizar la interpolacion de ambas matrices para conseguir una matriz con las coordenadas interpoladas.

Estamos intentando usar la funcion TriScatteredInterp pero no obtenemos ningun resultado de los esperados.

El codigo con el cual obtenemos ambas matrices es el siguiente:

A = xlsread('C:\Matlab files\Proyecto\Slick 1D WT.xls','donnees','A2:C2354')
y = elimina_vectors(A,[2,3]);
v = elimina_vectors(A,[1,2]);
z = elimina_vectors(A,[1,3]);

tri = delaunay (y,z);
h = trisurf (tri,y,z,v)
view(0,90)


% --- Executes on button press in Repres_testb.
function Repres_testb_Callback(hObject, eventdata, handles)
% hObject handle to Repres_testb (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

H =importdata('C:\Matlab files\Proyecto\Slick 1D CFD.csv')
H(:,1)=[]
y1 = elimina_vectors(H,[2,3]);
z1 = elimina_vectors(H,[1,3]);
v1 = elimina_vectors(H,[1,2]);

n = length(y1);
i=1;
c=0;
while i<=n
if y1(i)<=(-0.7)||y1(i)>=(-0.1)
y1(i)=[];
z1(i)=[];
v1(i)=[];
c=c+1;
n = n-1;
i=i-1;
end
i=i+1;
end


n = length(z1);
i=1;
c=0;
while i<=n
if z1(i)>=(-2.25)
y1(i)=[];
z1(i)=[];
v1(i)=[];
c=c+1;
n = n-1;
i=i-1;
end
i=i+1;
end


n = length(y1);
i=1;
c=0;
while i<=n
if y1(i)>=(-0.43)&& z1(i)>=(-2.85)
y1(i)=[];
z1(i)=[];
v1(i)=[];
c=c+1;
n = n-1;
i=i-1;
end
i=i+1;
end

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder