MATLAB: Vector of truncated distributions

normal distributiontruncation

Hello, I would like to create a vector x such that
pd = makedist('Normal');
x(1)=truncate(pd,-inf,y(1));
x(2)=truncate(pd,-inf,y(2));
x(K)=truncate(pd,-inf,y(K));
I want to call this vector in CDF evaluations as follows
cdfeval=zeros(N,1)
for n=1:N
for k=1:K
if id(n)==id1(k)
cdfeval(n)=cdf(x(k),pi_point(n,:));
end
end
end
Is there any easy way to do this?

Best Answer

Save this function in separate Matlab file named x_vector.m
function x1=x_vector()
pd = makedist('Normal');
x1(1)=truncate(pd,-inf,y(1));
x1(2)=truncate(pd,-inf,y(2));
...
x1(K)=truncate(pd,-inf,y(K));
end
Now call the function in main script:
cdfeval=zeros(N,1)
x=x_vector();
for n=1:N
for k=1:K
if id(n)==id1(k)
cdfeval(n)=cdf(x(k),pi_point(n,:));
end
end
end