Passing one element from array of structures

2 visualizaciones (últimos 30 días)
Neil dencklau
Neil dencklau el 2 de Abr. de 2013
I have an array of structures, all with the same fields, and I am trying to pass them one at a time into another function.
What I am doing:
f1 = linspace(1,10,10)
f2 = linspace(11,20,10)
[F1,F2] = meshgrid(f1,f2)
s(numel(F1)).field1 = 0
for ii =1:numel(F1)
s(ii).field1 = F1(ii)
s(ii).field2 = F2(ii)
s(ii).field3 = 0
s(ii) = funct1(s(ii))
end
Where funct1 is my function that generates a value for s(ii).field3 based on the values of field1 and field2
I get the error:
Error using subsindex Function 'subsindex' is not defined for values of class 'struct'.
I have also tried: s = arrayfun(@(x) funct1(x), s) but got the same error
What am I doing wrong and how can I fix it?

Respuestas (1)

Brian B
Brian B el 2 de Abr. de 2013
What is in funct1? If I define
funct1 = @(s)s;
then your code works without error.
  1 comentario
Brian B
Brian B el 2 de Abr. de 2013
My guess is that somewhere you are trying to use a struct as the index, as in
F1(s(1))
which does indeed produce the error you have.

Iniciar sesión para comentar.

Categorías

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