2012-11-25 43 views
1

我有這個程序,與統計有關。編程一系列的數據:Matlab

maximo = max(muestra); 
minimo = min(muestra); 
rango = maximo - minimo; 
num_intervalo = round(1 + 3.322*log(length(muestra))); 
amplitud = rango/num_intervalo; 

rango_intervalo = []; 
for i=1 : num_intervalo + 1 
    if i == 1 
     rango_intervalo(i: num_intervalo + 1) = minimo; 
    else 
     rango_intervalo(i: num_intervalo + 1) = rango_tabulado(i) + amplitud; 
    end 
    if i == num_intervalo + 1 
     rango_intervalo(i: num_intervalo + 1) = maximo; 
    end 
end 
rango_intervalo = rango_intervalo'; 

的意圖是建立九(或k的時間間隔)的時間間隔,其中每個間隔具有其範圍:

[1.580 - 2.587] 
[2.587 - 3.594] 
. 
. 
[9.636 - 10.650] 

隨着代碼,我已經編程的,它導致10個數據不是9根據意圖。 任何想法,改進這個代碼?

謝謝。

+0

你可以試試下面的? (PS:不是在一個matlab安裝機器前面 - 所以只是看邏輯) '如果我== 9' 'rango_intervalo(ⅰ:num_intervalo + 1)=馬克西莫;' '端' – bonCodigo

回答

0

如何:

intervals = linspace(minimo, maximo, num_intervalo + 1); 
intervals = [ intervals(1:end-1); intervals(2:end) ]'; 
+0

:優秀的代碼,它的作品完美:) 甚至完美的代碼,我對絕對frecuency。 :) –

+0

@ wilbur-naike - 如果它很好,爲什麼不投票呢?謝謝! – Shai

+0

我的名聲小於15:/ –