Defining function handles in a for loop

8 visualizaciones (últimos 30 días)
Yancheng Wang
Yancheng Wang el 7 de Nov. de 2020
Comentada: Walter Roberson el 8 de Nov. de 2020
Hello everyone,
I have trying to define a series of function handles that are very similar. They only differ by their constant coefficients. They general idea is that I want to define functions s1 to s5 such that
for i =1:5
S_i = @(x) z(i)/3.*(p(i+1) -x)^3
end
where each s takes on their coefficeints from vectors z and p, as shown. But it seems like Matlab does not allow an array of function handles. What should I do?
Thanks a lot guys!

Respuestas (1)

Walter Roberson
Walter Roberson el 7 de Nov. de 2020
for i =1:5
S_i{i} = @(x) z(i)/3.*(p(i+1) -x)^3
end
  6 comentarios
Yancheng Wang
Yancheng Wang el 7 de Nov. de 2020
Editada: Yancheng Wang el 7 de Nov. de 2020
Thank you! I did not know this and it helps!
So, as I defined the functions as above, when I try to graph them, matlab indicates that these are "array inputs" and should be "properly vectorized". Do you know what happened/what I should do to graph these functions?
Thanks again
Walter Roberson
Walter Roberson el 8 de Nov. de 2020
S_i{i} = @(x) z(i)/3.*(p(i+1) -x).^3 %notice .^ instead of ^

Iniciar sesión para comentar.

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by