how do I store an array of functions?
130 ビュー (過去 30 日間)
古いコメントを表示
I want to store the following function for i=0:170
f = @(u) 2/(pi*sqrt(1-((sin(i/2)^2)*(sin(u)^2))));
and evaluate using my function.
1 件のコメント
Stephen23
2020 年 5 月 8 日
What is the point in creating 171 copies of (almost) the same function, when you can just create one?:
f = @(u,i) 2/(pi*sqrt(1-((sin(i/2)^2)*(sin(u)^2))));
回答 (2 件)
per isakson
2020 年 5 月 8 日
編集済み: per isakson
2020 年 5 月 8 日
An error message tells me
Nonscalar arrays of function handles are not allowed; use cell arrays instead.
Is this what are looking for?
>> f{1}(pi/2)
ans =
0.63662
>> f{100}(pi/2)
ans =
0.88291
>>
where f is created by
%%
f = cell( 1, 171 );
for ii = 0 : 170
f{ii+1} = @(u) 2/(pi*sqrt(1-((sin(ii/2)^2)*(sin(u)^2))));
end
Or why not
%%
f3 = @(u,jj) 2./(pi*sqrt(1-((sin(jj/2).^2).*(sin(u).^2))));
f3(pi/2,0)
0 件のコメント
KSSV
2020 年 5 月 8 日
i = 0:170 ;
f = @(u) 2./(pi*sqrt(1-((sin(i/2).^2).*(sin(u).^2))));
f = f(i) ;
plot(i,f)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!