how to create random double in specific range?

50 ビュー (過去 30 日間)
fred bnm
fred bnm 2016 年 12 月 5 日
編集済み: Image Analyst 2023 年 4 月 1 日
HI, randi function Can only generate integers in specific range.
num = randi([1,3],[1,10],'double');
how to create double numbers in range such as [0.2,1.2]?

採用された回答

Cyrus
Cyrus 2016 年 12 月 5 日
編集済み: Image Analyst 2023 年 4 月 1 日
For generating double numbers you can use:
r = rand( 1, 3 ,'double')
r = 1×3
0.8499 0.2298 0.4419
and to have them in a specific range you can use the following source: https://www.mathworks.com/help/matlab/math/floating-point-numbers-within-specific-range.html
which is:
a = 50;
b = 100;
r = (b-a).*rand(1000,1) + a;
thus, finally:
numElements = 10;
a = 0.2;
b = 1.2;
r= (b-a).*rand(1, numElements, 'double') + a; % [SL: added the missing "+a" term]
The result:
r
r = 1×10
0.3118 1.1751 0.8208 0.8696 0.6526 1.1281 0.4074 0.5364 0.2122 0.9621

その他の回答 (1 件)

Carolina Escobar
Carolina Escobar 2023 年 4 月 1 日
e = rand(0.1,1)
  1 件のコメント
Steven Lord
Steven Lord 2023 年 4 月 1 日
This will throw an error.
e = rand(0.1, 1)
Error using rand
Size inputs must be integers.
As the error message indicates, the size inputs to rand must contain integer values.

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

カテゴリ

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