簡體   English   中英

matlab中的直方圖但不使用 hist 函數

[英]histogram in matlab but without using hist function

我有點困在如何在不使用 hist 函數的情況下在 MatLab 中繪制直方圖

問題是

在 (0 ,100) 之間生成一個隨機數並在 xy 上繪制 1000 個這些隨機數字,計划為直方圖

示例讓間隔為 10

× |

0 -10 | 5

10-20 | 9

20-30 | 15

等等 ...

其中 x 是區間,y 表示該區間內重復的隨機數

我嘗試編寫此代碼

function []=drawhist(a,b)

x=a+(b-a)*rand(1,1000);

bar(x)

end

但沒有給我所需的輸出,請幫助我了解如何編寫此函數

這應該做你想做的,但這是整數。 如果您希望將其推廣到浮點,您需要定義采樣的准確性並定義為該准確性一半的邊緣

function [centers,freq] = drawhist(range,interval,density)
% example 
% generate 1000 random integers ranging between 0 and 100;
% drawhist([0,100],10,1000);
V = randi([0,100],density,1); 
min_x = range(1); max_x = range(2); 
bin = linspace(min_x,max_x,interval+1);
freq = zeros(interval,1);
for ii=1:interval
   freq(ii) = sum(V>bin(ii)&V<bin(ii+1));
end
centers = bin(2:end)-(bin(2:end)-bin(1:end-1))/2;
bar(centers,freq);

end

享受

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM