Defining function handles in a for loop

8 visualizzazioni (ultimi 30 giorni)
Yancheng Wang
Yancheng Wang il 7 Nov 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!

Risposte (1)

Walter Roberson
Walter Roberson il 7 Nov 2020
for i =1:5
S_i{i} = @(x) z(i)/3.*(p(i+1) -x)^3
end
  6 Commenti
Yancheng Wang
Yancheng Wang il 7 Nov 2020
Modificato: Yancheng Wang il 7 Nov 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 il 8 Nov 2020
S_i{i} = @(x) z(i)/3.*(p(i+1) -x).^3 %notice .^ instead of ^

Accedi per commentare.

Categorie

Scopri di più su Programming in Help Center e File Exchange

Prodotti


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by