怎樣用matlab產生一組和為1的隨機數

2021-03-09 22:07:35 字數 3509 閱讀 5515

1樓:妳的天真呢

參考代原始碼:1

2345

6789

1011

1213

1415

1617

clcclear all

close all

sum = 30; % 指定的和

n = 5; % 隨機數個數

r = zeros(1, n); % 生成的隨機數

sumtemp = floor(sum/n); % 每生成乙個隨機數後,剩餘的和

for i=1:(n-1)

r(i) = sumtemp.*rand();

sumtemp = floor((sum - r(i))/(n-i) );

endr(n) = sum - sum(r(1:n-1));

fprintf(1, '生成的隨機數為:');

disp(r);

%-- 驗證 --%

sum_r = sum(r);

fprintf(1, '生成的隨機數的和為:%d\n', sum_r);

輸出生成的隨機數為: 4.1690 1.9026 8.5520 0.3445 15.0320

生成的隨機數的和為:30

2樓:春曖曖開花

a = rand(1,10)b = a/sum(a(:))** = sum(b(:))a = 0.

1576 0.9706 0.9572 0.

4854 0.8003 0.1419 0.

4218 0.9157 0.7922 0.

9595 b = 0.0239 0.1470 0.

1450 0.0735 0.1212 0.

0215 0.0639 0.1387 0.

1200 0.1453 ** = 1

matlab怎麼生成一組和為定值的隨機數

3樓:匿名使用者

先生成一組隨機來數,自然後把和歸一化,再乘以要求總和就可以了例如要生成10個總和為10的隨機數

a=rand(10,1);

a=10*a/sum(a);

這樣a就是10個和為10的隨機數

其實 a/sum(a)就是總和為1的隨機數

4樓:匿名使用者

參考**:

clcclear all

close all

sum = 30;  % 指定復的和制

n = 5;     % 隨機bai數du個數r = zeros(1, n);   % 生成的隨機數sumtemp = floor(sum/n);   % 每生zhi成乙個隨機數後,剩餘的dao和

for i=1:(n-1)

r(i) = sumtemp.*rand();

sumtemp = floor((sum - r(i))/(n-i) );

endr(n) = sum - sum(r(1:n-1));

fprintf(1, '生成的隨機數為:');

disp(r);

%-- 驗證 --%

sum_r = sum(r);

fprintf(1, '生成的隨機數的和為:%d\n', sum_r);

輸出生成的隨機數為:     4.1690    1.9026    8.5520    0.3445   15.0320

生成的隨機數的和為:30

怎樣用matlab產生一組和為1的隨機數?

5樓:土豆他哥哥

x=rand(1,3);y=sum(x);r=x/y

6樓:匿名使用者

>> x=rand(1,10);y=sum(x);r=x/y%r就是來

隨機數和為

源一,且都是(0,1)內的數

r =columns 1 through 70.1623 0.0228 0.

1636 0.1133 0.0175 0.

0499 0.0980

columns 8 through 10

0.1716 0.1729 0.0282>> sum(r)

ans =

1.0000

>>

c#中怎樣用random產生1到10之間的隨機數

7樓:墨汁諾

1、@echo off

rem 用random產生1到10之間的乙個隨機數set num=%random%

set /a num=num%%10+1

echo %num%

1到1000:

2、rnumber.next(1,1000);

random rnumber = new random();//例項化乙個隨機數專物件

rnumber.next(1,10);//產生乙個1到10之間屬的任意乙個數

rnumber.next(1,1000);//產生乙個1到1000之間的任意乙個數

8樓:匿名使用者

random randobj = new random();

int start=1;//隨機數可取該下界值int end=10;//隨機數不能取該上界值for( int j= start ; j < end; j++ ) ",randobj.next( start, end) );

}就可以生成1-10之間的隨機數了

你再把start=1和end=1000就可以了 產生1到1000之間的隨機數

9樓:匿名使用者

random rnumber = new random();//例項化乙個隨機數物件

rnumber.next(1,10);//產生乙個1到10之間的任意乙個數

rnumber.next(1,1000);//產生乙個1到1000之間的任意乙個數

10樓:匿名使用者

random rnumber = new random();

rnumber.next(1,10);

rnumber.next(1,1000);

matlab 如何生成一組正隨機數

11樓:匿名使用者

matlab函式randn:產生正態分佈的隨機數或矩陣的函式randn

產生均值為0,方差 σ^2 = 1,標準差σ = 1的正態分佈的隨機數或矩陣的函式.

用法:y = randn(n)

返回乙個n*n的隨機項的矩陣.如果n不是個數量,將返回錯誤資訊.

y = randn(m,n) 或 y = randn([m n])返回乙個m*n的隨機項矩陣.

y = randn(m,n,p,...) 或 y = randn([m n p...])

產生隨機數組.

12樓:轉基因牛

abs(randn(1,100));

用matlab或spss將一組資料怎麼擬合成多元多項式

程式 clear clc x1 2187.45 2482.49 2969.52 3585.72 4282.14 4950.91 5813.56 6801.57 7806.53 8201.23 9510.91 x2 701.24 724.57 746.62 778.27 800.80 827.75 8...

用matlab對一組資料進行擬合後,怎麼直接顯示擬合函式的影象

matlab是一抄個很強大的資料處理軟 襲件,是人們進行資料分析的得力助手。一般我們做社會調研或科學研究時,會得到很多實驗資料。當需要研究兩個變數之間的關係時,經常要用到曲線擬合。曲線擬合不僅能給出擬合後的關係式,還能用圖形直觀的展現出變數之間的關係。其實用matlab做曲線擬合很便捷,下面將以兩個...

C 程式設計 用過載函式實現分別求一組整數和一組雙精度數的最小

include int a float b 10 int a length sizeof a sizeof int int b length sizeof b sizeof float int min int a int min a while a length min a符合你的要求不?你的程式需...