```Path: news.mathworks.com!not-for-mail
From: <HIDDEN>
Newsgroups: comp.soft-sys.matlab
Subject: Re: How can I find the mean between to points of normal distribution?
Date: Sun, 15 Aug 2010 19:50:04 +0000 (UTC)
Organization: FIU
Lines: 30
Message-ID: <i49gdc\$7fj\$1@fred.mathworks.com>
References: <i371ts\$ht3\$1@fred.mathworks.com> <i37711\$fqu\$1@fred.mathworks.com> <i37ctu\$1ta\$1@fred.mathworks.com> <i37he8\$cmp\$1@fred.mathworks.com> <i394bk\$5c\$1@fred.mathworks.com> <i39ms6\$gph\$1@fred.mathworks.com>
NNTP-Posting-Host: webapp-05-blr.mathworks.com
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: fred.mathworks.com 1281901804 7667 172.30.248.35 (15 Aug 2010 19:50:04 GMT)
X-Complaints-To: news@mathworks.com
NNTP-Posting-Date: Sun, 15 Aug 2010 19:50:04 +0000 (UTC)
Xref: news.mathworks.com comp.soft-sys.matlab:662228

After my first tests I thought everything was working correctly, but it seems that it is not.  I have attached a test script whereas it calculates the expected value with a brute
force way, and a way using the formula you stated in your reply.  It calculates these 2 values for varying values of mu.  You can see from the plot, that the green line which represents your formula, goes outside the min/max.  I probably just have a sign incorrect or
something, so if you could take a look I would really appreciate it.

function [ ] = testExpectedValue()

a = 25;
b = 26;
sigma = 1;

mean1(1) = 0;
mean2(1) = 0;

for mu=20:.1:30

x = random('normal',mu,sigma,1000000,1);

mean1(end+1) = mean(max(a,min(b,x)));

mean2(end+1) = a*normcdf(a,mu,sigma) + sigma^2*(normpdf(a)-normpdf(b)) + ...
mu*(normcdf(b,mu,sigma) - normcdf(a,mu,sigma)) + ...
b*(1-normcdf(b,mu,sigma));

end

close all;
plot(mean1(2:end),20:.1:30);hold on;  plot(mean2(2:end),20:.1:30,'g');

end
```