Scattered Interpolant possible with multiple sample value vectors?

11 visualizaciones (últimos 30 días)
Hey guys,
I'm trying to build an interpolant which should give me interpolants for 8 different sample value vectors. I have an 95374*8 double list of sample values (UF). Corresponding to which there are two 95374*1 double coordinate lists (xe & ye).
I'm trying to build a loop in which the scatteredinterpolant F is constructed for each of these 8 sample value lists. Thing is that I don't know if it is even possible to create a scatteredinterpolant which consists of more than one value list?
Matlab tells me my F (if i take one set of values) is 1x1. So is it possible to make it 1x8? That looks like this:
%if true
F=scatteredInterpolant(xe,ye,UF(:,1),'natural');
I've tried making something like this, but it won't work as I cant tell matlab to put the values next to the already existing ones:
if true
for i=1:8
F(:,:,i)=scatteredInterpolant(xe,ye,UF(:,i),'natural');
end
The error this yields after the first iteration is: Error using scatteredInterpolant/subsasgn Invalid arguments in indexing operation.
If you guys could help me out that would be awesome! Thanks in advance.

Respuesta aceptada

Andrei Bobrov
Andrei Bobrov el 20 de Mzo. de 2015
Please try this:
F = cell(8,1);
for ii =1:8
F{ii} = scatteredInterpolant(xe,ye,UF(:,ii),'natural');
end
  3 comentarios
Yuri Engelshoven
Yuri Engelshoven el 20 de Mzo. de 2015
The problem that comes up now is that when I try to evaluate a certain point in one of the cells of F, an error comes up because Matlab now reads it as a single cell in stead of a scatteredpinterpolant.
if true
for i=1:8
% FF=cell2mat(F(:,i)) this operation doesnt work either.
FF=F(:,1);
T(:,1)=XX(:,i);
T(:,2)=YY(:,i);
T=double(T);
UFI(:,i)=FF(T)
end
end
The error i get is: Subscript indices must either be real positive integers or logicals. Line 254 UFI(:,i)=FF(T)
Any clue on how to solve this?
Andrei Bobrov
Andrei Bobrov el 22 de Mzo. de 2015
UFI = zeros(size(XX,1),8);
for jj = 1:8
UFI(:,jj) = F{jj}(XX(:,jj),YY(:,jj));
end

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Interpolation 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!

Translated by