Integral of user-defined function

조회 수: 5 (최근 30일)
Vishakha Ramani
Vishakha Ramani 2023년 6월 4일
답변: John D'Errico 2023년 6월 4일
I have the following MATLAB code, and would like to evaluate the integral of compcdf_mgc function with respect to variable y. However, I'm getting the following error: "Unable to perform assignment because the left and right sides have a different number of elements."
rate = 1;
num_steps = 2;
num_proc = num_steps;
f = @(y) compcdf_mgc(num_steps, rate, num_proc, y);
integral_value = integral(f, 0, Inf);
function final = compcdf_mgc(num_steps, rate, c, y)
n = num_steps;
scale = 1/rate; % this is b = 1/lambda
compcdfvec = zeros(n, 1);
for i = 1:n
compcdfvec(i) = 1 - gamcdf(y, n+i, scale);
end
final = ((1/n)*sum(compcdfvec))^c;
end

채택된 답변

Torsten
Torsten 2023년 6월 4일
편집: Torsten 2023년 6월 4일
Your function is not vectorized. Thus you have to use
integral_value = integral(f, 0, Inf, 'ArrayValued',true)
instead of
integral_value = integral(f, 0, Inf)

추가 답변 (1개)

John D'Errico
John D'Errico 2023년 6월 4일
Is your code vectorized? That is, what happens when a VECTOR of elements for y is passed in? (It does not appear to be.)
integral assumes a vectorized function.

카테고리

Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by