Defining function handles in a for loop

8 次查看(过去 30 天)
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!

回答(1 个)

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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by