[英]how to hist graph by using matlab
我必須 plot 概率並使用 MATLAB 與理論值進行比較。
問題是
我知道獲勝概率是 p=1/6,否則 p=5/6,而且我認為編寫代碼的准則。 設置n=0,統一生成1~6其中一個整數,生成1則加贏,否則加輸,n++,go如果n返回1
請問有什么問題以及如何解決?
N=100;
win=0;
lose=0;
a=randi([1 6],1,1);
n=0;
p=0;
while n<N
if a==1
p=p+1/6;
else
p=p+5/6;
end if
end while
hist(N,p);
也許我沒有正確解釋您的問題,但我相信您在問 N 必須有多大才能獲得接近 1/6 的概率。 我可能會創建一個矩陣a
。 如下所示, a
的第一列是 1:6 的 10000 個隨機值。 如果第一列中的對應值等於 1,則a
的第二列等於 1,否則為零。
第三列是通過“第k”行數據的概率。 即a(100,3)
是在前 100 次嘗試中擲出 1 的次數除以嘗試次數,即成功概率。
從那里,而不是直方圖,我將簡單地 plot a(:,3)
並與 1/6 進行比較,就像我使用 plot 命令所做的那樣。
N=10000;
a=randi([1 6],N,1);
a(:,2) = a(:,1) == 1;
a(:,3) = cumsum(a(:,2)) ./ (1:N)';
plot(1:N, a(:,3))
hold on
plot([1,N], [1/6, 1/6], "Color","r")
順便說一句,在 MATLAB 我不熟悉
end if
end while
我希望這兩行代碼都只是end
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.