Evaluate function handle for each value in vectorized form
이전 댓글 표시
I initialize a relatively simple function handle that depends on alpha. For simplicity, I will use alpha = 1.
For beta and gamma, I use n=10 random draws, where beta are scalars and gamma are 3 by 1 vectors.
I want to evaluate the function handle for each of the n random draws. This can be achieved e.g. by a for loop.
How can this be achieved in a more Matlab-like (vectorized) way?
Thanks.
alpha = 1;
n=10;
rng default
beta_all = randn(n, 1);
gamma_all = randn(3, n);
res = cell(n, 1);
for k=1:length(res)
beta = beta_all(k);
gamma = gamma_all(:,k);
y = @(alpha) (alpha * beta * gamma);
res{k} = y(alpha);
end
댓글 수: 4
Jan
2021년 6월 1일
Is it really needed to create y?
res{k} = alpha * beta * gamma;
Salomon Roth
2021년 6월 1일
Jan
2021년 6월 1일
Maybe the problem gets more clear, if you post the real code, not a strongly simplificated version. If you need "alpha +- something", you could use:
res{k} = (alpha + x) * beta * gamma;
Salomon Roth
2021년 6월 2일
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Gamma Functions에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!