Using Cell Arrays in Interpolants

8 visualizaciones (últimos 30 días)
swenia
swenia el 5 de Dic. de 2017
Comentada: swenia el 7 de Dic. de 2017
I have a griddedInterpolant F and some of the input variables are in a cell array form. As an example, this is how I created the interpolant F:
[x,y,z] = ndgrid(-5:1:5);
t = x+y+z;
mycell = {x,y};
F = griddedInterpolant(mycell{:},z,t);
In reality, the size of the cell array mycell changes each time I run the code, and that's why I figured I have to use a cell array as an input. Up to this point everything works beautifully and I get my interpolant F without any problems.
Now I'd like to call the interpolant F in another function. When I have a single row for each input, everything works fine as shown in the following example:
testcell = {1,3};
F(testcell{:},5)
ans =
9
However, when I'd like to have each input in a vector form, the interpolant doesn't work and I get the following error:
testcell = {1,3; 2, 4};
F(testcell{:,:},[5;1])
Error using griddedInterpolant/subsref
Invalid arguments specified in evaluating the interpolant.
Because I don't know the dimensions (particularly number of columns) of my actual cell array, I can not break testcell apart manually. This means that my input data might be 3D, but I can't call the interpolant F as F(input1, input2, input3) because I don't know whether it is 3D. As a side note, the code does know the dimensions of the data. I'd like to use vector inputs for each input variable of F in order to call F for n number of cases at once without a for loop. (i.e. each input has a size of nx1, hence the output should also be a vector of nx1)
What is the right way to call the interpolant F in this case?

Respuesta aceptada

Nicolas Schmit
Nicolas Schmit el 6 de Dic. de 2017
There is a problem with your last snippet of code. Here is how you should correct it.
testcell = {[1;3]; [2; 4]};
F(testcell{:},[5;1])
  4 comentarios
swenia
swenia el 7 de Dic. de 2017
Thank you!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by