簡體   English   中英

如何使用 matlab 生成圖表

[英]how to hist graph by using matlab

我必須 plot 概率並使用 MATLAB 與理論值進行比較。

問題是

  1. 擲一個骰子
  2. 如果數字是 1 -> 贏,否則 -> 輸
  3. 滾動 N 次
  4. 擲骰子多少次才能獲得接近理論值1/6的中獎概率?

我知道獲勝概率是 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.

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