%% a) 1000 normal distributed random numbers: x = randn(1000, 1); %% b) probability of 0<=x<0.5: n = sum(x>=0.0 & x<0.5); P = n/length(x); fprintf('probability 0<=x<0.5 is %g\n', P); %% c) probability for decreasing intervals: upper = [0.0:0.01:4.0]; P = zeros(length(upper), 1); for k=1:length(upper) P(k) = sum((x>=0) & (x<upper(k)))/length(x); end subplot(1, 2, 1); plot(upper, P, 'linewidth', 2); ylim([0 0.5]); xlabel('x_{upper}'); ylabel('P(0<=x<x_{upper})'); %% d) histogram with for loop: x = randn(1000, 1); bw = 0.5; bins=[-5:bw:5]; n = zeros(length(bins), 1); for k=1:length(bins) n(k) = sum((x>=bins(k)-bw/2) & (x<bins(k)+bw/2)); end p = n/sum(n)/bw; subplot(1, 2, 2); bar(bins, p); %% e) gaussian pdf: hold on; xx = [bins(1):0.01:bins(end)]; gauss = exp(-0.5*xx.^2.0)/sqrt(2*pi); plot(xx, gauss, 'r', 'linewidth', 2); hold off; xlim([-5 5]) xlabel('x'); ylabel('p(x)'); %% f) hist x = randn(1000, 1); bw = 0.5; bins=[-5:bw:5]; n = hist(x, bins); p = n/sum(n)/bw; subplot(1, 2, 2); bar(bins, p); hold on; plot(xx, gauss, 'r', 'linewidth', 2); hold off; xlim([-5 5]) xlabel('x'); ylabel('p(x)'); savefigpdf(gcf, 'normhist.pdf', 14, 6);