max,min,mean,median,std,sort,sortrows,sum,prod,diff,trapz,cumsum, cumprod,cumtrapzHistogrammien modostamiseen ja piirtoon Matlabissa on esim. hist ja bar. Edellinen toimii hieman mystisesti. Pakko tehdä oma "luokittele", jolloin on varmuus siitä, mitä se tekee.
help luokittele
function [frekvenssit,keskip]=luokittele(arvot,luokat)
% 18.11.01
% arvot: lukuarvojen vektori
% luokat: Vektori, jossa luokkarajat
% Esim:
>> x=[89 84 87 81 89 86 91 90 78 89 87 99 83 89];
>> luokat=[74.5:5:99.5]
luokat =
74.5000 79.5000 84.5000 89.5000 94.5000 99.500
>> [fr,kp]=luokittele(x,luokat)
fr =
1 3 7 2 1
kp =
77 82 87 92 97
>> bar(kp,fr)
>> suhtfr=fr/length(x)
suhtfr =
0.0714 0.2143 0.5000 0.1429 0.0714
>> sum(suhtfr)
ans =
1
>> bar(kp,suhtfr) % vrt. KRE Fig. 476 s. 1051
>> ylim([0,1]); grid
>> subplot(1,2,1)
>> bar(kp,fr)
>> title('Absoluuttinen frekvenssi')
>> subplot(1,2,2)
>> bar(kp,suhtfr)
>> title('Suhteellinen frekv')
>> ylim([0,1]); grid
>> kertyma=cumsum (suhtfr)
kertyma =
0.0714 0.2857 0.7857 0.9286 1.0000
>> bar(kp,kertyma)
>> bar(kp,kertyma)
>> title('Kertymä')
%%%%%%%%%%%%%%%%%%%%%%%%%%%% function z=tasaluokat(x,n) xmin=min(x); xmax=max(x); a=xmin-0.5;b=xmax+0.5; z=linspace(a,b,n+1); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% >> [fr,lk]=luokittele(x,tasaluokat(x,10)) >> bar(lk,fr)
function z=keskiarvo(x) z=sum(x(:))/length(x(:)); % Mikä tyyli! function z=varianssi(x) n=length(x); a=sum(x)/n; z=sum((x-a).^2)/(n-1); % Mikä eleganssi! function luku=mediaani(v) v=sort(v); n=length(v); i=(n+1)/2;i1=floor(i);i2=ceil(i); luku=(v(i1)+v(i2))/2; function [qu,qm,ql]=kvartiilit(v) v=sort(v) n=length(v); i=(n+1)/4;i1=floor(i);i2=ceil(i); % Tätä en ihan tarkkaan miettinyt ql=(v(i1)+v(i2))/2; i=(n+1)/2;i1=floor(i);i2=ceil(i); qm=(v(i1)+v(i2))/2; i=3*(n+1)/4;i1=floor(i);i2=ceil(i); % kuten tätäkään. qu=(v(i1)+v(i2))/2;
Yksityisen koetuloksen tai mittauksen arvoa on mahdotonta (joko periaatteessa tai käytännössä) ennustaa, mutta kokeen keskimääräinen tulos pitkässä toistosarjassa käyttäytyy säännönmukaisesti.