terça-feira, 13 de maio de 2014

Cálculo da média e da mediana utilizando ciclo "for-end" (MATLAB)

A partir de 5 séries de 50 números aleatórios podemos facilmente calcular a média e a mediana usando um ciclo "for-end". Para isso temos que perceber bem como funciona a estrutura simples deste "script" do Matlab. Nesta fase já devemos saber que tipo de instruções devemos colocar no interior/exterior do ciclo e dominar a conversão dos números para texto utilizando a ferramenta "num2str". Aqui vão as linhas de comando com os respectivos comentários:

nsamples=5; % número de amostras ou de iterações
npoints=50;
for k=1:nsamples % vai fazer os vários ciclos em número igual ao das amostras
    iterationString=['iteration #',int2str(k)]; % coloca o número da iteração na expressão "iteration #"
    disp(iterationString) % mostra cada iteração por ordem numérica  
    currentData=rand(npoints,1); % vai gerar uma matriz de 50 linhas e i coluna de números aleatórios
    sampleMean(k)=mean(currentData); % calcula a média de cada amostra que contém 50 números aleatórios
    sampleMedian(k)=median(currentData); % calcula a mediana de cada amostra que contém 50 números aleatórios
    MeanText=['Mean is equal to ',num2str(sampleMean(k))]; % converte o valor numérico da média para texto
    disp(MeanText)% mostra o valor da média
    MedianText=['Median is equal to ',num2str(sampleMedian(k))]; % converte o valor numérico da mediana para texto
    disp(MedianText) % mostra o valor da mediana
   
end % fim do ciclo
  
overallMean=mean(sampleMean);% calcula a média global das 5 amostras de 50 números aleatórios
overallMeanText=['overallMean is equal to ',num2str(mean(sampleMean))];
disp(overallMeanText)

Eis os resultados:

iteration #1
Mean is equal to 0.52468
Median is equal to 0.58347
iteration #2
Mean is equal to 0.46597
Median is equal to 0.45275
iteration #3
Mean is equal to 0.45805
Median is equal to 0.41388
iteration #4
Mean is equal to 0.54595
Median is equal to 0.56493
iteration #5
Mean is equal to 0.43422
Median is equal to 0.42936
overallMean is equal to 0.48577

Sem comentários: