Defining function handles in a for loop

9 Ansichten (letzte 30 Tage)
Yancheng Wang
Yancheng Wang am 7 Nov. 2020
Kommentiert: Walter Roberson am 8 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!

Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Programming finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by