how to generate floating points randomly????

Hello! i am new in matlab and need help, as em writing code for generating matrix of size 20-by-4. rowsize=20, colsize=4 and need to generate between [0 1], suppose i want matrix having random values like [0.25 0.5 0.05 0.20] and so on.... but when i run my code then it returns me 20-by-4 matrix of 0's and 1's.....which function i should use to get required results...please help and thanks in advance..
{ matrix_rand=randint(rowsize, colsize, [0 1]); it returns
1 0 0 0
1 1 1 0
1 1 0 1
0 0 0 0
0 1 0 0
1 1 1 1
0 1 0 0
1 1 0 0
1 1 1 0
0 0 0 1
1 1 0 1
1 0 1 1
1 0 0 1
1 0 0 0
1 1 1 0
0 1 0 1
1 0 0 1
0 0 0 1
1 1 0 0
but when i write rand(), then it returns nothing

 采纳的回答

matrix_rand = rand(rowsize, colsize);

5 个评论

Sory, i should elaborate my problem clearly.... i also want that sum of each row should be "1" suppose[0.25 0.5 0.05 0.20], if add these values then i get '1'... plz help me how should i give the limits also.....
hello David, plz help me to resolve problem..... thanx
You can make the sum of each row add to 1 like this:
matrix_rand_normalised = bsxfun(@rdivide, matrix_rand, sum(matrix_rand,2))
Please do *not* use the normalization method! It leads to bias in the generated numbers! Use Roger Stafford's method instead.
Yes! I have done my work with Roger Stafford's method ... and got results...Thanx both of you guys for suggestions....

请先登录,再进行评论。

更多回答(1 个)

Roger Stafford has a MATLAB File Exchange contribution for generating random numbers with a fixed sum. See http://www.mathworks.com/matlabcentral/fileexchange/9700-random-vectors-with-fixed-sum

类别

帮助中心File Exchange 中查找有关 Logical 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by