Generating 15 random values (array of 1x15 dim) whose sum equal to 1.

1 回表示 (過去 30 日間)
Sultan
Sultan 2017 年 9 月 28 日
編集済み: Sultan 2017 年 9 月 29 日
How I can generate a random vector v = [v1, ..., v15] such that v1+...+v15 = 1. Please help me. :MSA

回答 (1 件)

John D'Errico
John D'Errico 2017 年 9 月 28 日
編集済み: John D'Errico 2017 年 9 月 28 日
1. Download randfixedsum from the file exchange.
2. Use it.
Do NOT generate a set of random numbers, then just scale them to sum to 1.
  1 件のコメント
Sultan
Sultan 2017 年 9 月 29 日
編集済み: Sultan 2017 年 9 月 29 日
Thanks John. I want to generate 1x15 dim array v =[v1,...,v15] such that v1+...+v15=1, vi\in [0,1], i=1,...15. The function randfixedsum(n,m,s,a,b) is showing error when I am running [x,v] = randfixedsum(1,15,1,0,1). Following is the error:
Index exceeds matrix dimensions.
Error in randfixedsum (line 95) x = (b-a)*x(p+repmat([0:n:n*(m-1)],n,1))+a; % Permute & rescale x

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeRandom Number Generation についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by