怎樣用matlab給定乙個1或者0的個數確定的多維隨機0 1矩陣

2025-07-22 11:00:22 字數 6176 閱讀 4131

1樓:網友

例子,10x10x10的矩陣,一共有1000個單元。

希望其中500個為1,500個為0

a=zeros(10,10,10); a是10x10x10全0矩陣。

b=randperm(1000); b是1~1000自然數隨機排列的矩陣。

a(b(1:500))=1; %取b的前500個數作為下標,將a中對應500個單元賦值為1

最後得到的a就是乙個10x10x10的矩陣,其中有500個0,和500個1,位置隨機。

matlab要建立乙個3×4隨機矩陣a,其元素為1到99範圍內的隨機整數,有哪些方法?

2樓:小菜鳥2無聊寫**

matlab建立乙個3×4隨機整數矩陣a,元素範圍為1到99,最常用的方法是rand函式。

a=floor(rand(3,4)*99)+1<>

其次,如果你需要整數不重複,可以使用randperm,**稍微多了一句:

a=randperm(99);

a=reshape(a(1:12),3,4)<>

如何用matlab產生一0、1隨機數列

3樓:惠企百科

1、首先啟動matlab,新建乙個函式檔案。

2、在彈出的視窗中輸入**。

3、儲存該函式,注意檔案命名要與函式名相同。

5、最後再命令列視窗中輸入命令,get01(m,n)就可以產生m行n列的隨機0-1矩陣了。

請問:怎樣用matlab隨機生成乙個只有0,1元素的矩陣?用什麼命令,謝謝啊!

4樓:信必鑫服務平臺

用rand函式生成元素均為0-1之間的隨機數的矩陣,然後逐個判斷,一下的改為0,以上的改為1:

a=rand(m,n);

for i=1:m

for j=1:n

if a(i,j)<=

a(i,j)=0;

elsea(i,j)=1;

endend

end<>

matlab矩陣基本的生成。

1、單位矩陣。

eye(n)生成n*n的單位矩陣。

eye(n,m)生成n*m的單位矩陣。

eye(size(b))生成與b同樣大小的單位矩陣。

2、全1矩陣。

ones(n)

ones(n,m)

ones(size(a))

ones(1,2)生成一行兩列的全一矩陣。

與1類似。3、全0矩陣。

用法同24、隨機數矩陣。

rand(n)生成n*n隨機方陣,其他類似於2

5、randn

生成元素為正態分佈隨機數的矩陣,用法同4

6、線性間隔向量的生成。

logspace(a,b)生成由50個10^a 到10^b之間的對數間隔點組成的行向量。

logspace(a,b,n)生成由n個10^a 到10^b之間的對數間隔點組成的行向量。

logspace(a,pi)生成由n個10^a 到pi之間的對數間隔點組成的行向量`

7、分塊對角矩陣。

blkdiag(a,b,c)生成由a,b,c構成的分塊對焦矩陣。

8、連線矩陣。

cat(d,a,b,c)生成由a,b,c組成的d維矩陣。

9、對角矩陣。

diag10、左右調換。

fliplr(a)把a矩陣左右調換。

flipud(a)上下調換。

rot90(b)把b逆時針旋轉90度。

11、生成下三角矩陣。

tril(b)生成矩陣b的下三角矩陣。

tirl(b,k)生成b的第k條對角線的下三角矩陣。

k=0時二者作用相同。

triu則是上三角。

12、生成伴隨矩陣。

compan(a)

13、生成魔方矩陣。

magic(n)

matlab中如何產生n個隨機數,和為定值m

5樓:惠企百科

1、首先在電腦中,找到並開啟matlab軟體,二項分佈隨機數的產生。

2、接著輸入二項分佈隨機數x~b(n,p),n為發生次數,p為發生概率,如下圖所示。

3、然後輸入泊松分佈,引數為p,如下圖所示。

4、接著輸入指數分佈,引數為λ,如下圖所示。

5、最後正態分佈,x~n(μ,2),如下圖所示,就完成了。

請問:怎樣用matlab隨機生成乙個只有0,1元素的矩陣?用什麼命令,謝謝啊!

6樓:丿

編寫rand_binarymatrix函式,**如下:

function [ binarymatrix ] = rand_binarymatrix( i, j )

隨機生成i行j列的0和1元素填充的矩陣。

binarymatrix = rand(i,j);

for count_i = 1:i

for count_j = 1:j

if binarymatrix(count_i, count_j) <

binarymatrix(count_i, count_j) = 0;

elsebinarymatrix(count_i, count_j) = 1;

endend

endend

在命令列視窗中,(假設要輸入4行7列的填充的矩陣)令i=4,j=7,輸入**:

rand_binarymatrix(4,7)

回車即可。擴充套件資料

在matlab中,rand用於生成0~1之間均勻分佈的偽隨機數,randn用於生成均值為0、方差為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...產生隨機陣列。

7樓:mango菌吃橙子

沒聽說過有直接生成的方法。

可以這樣子,比如要生成m*n的矩陣,先用。

回rand函式生成元素均為答0-1之間的隨機數的矩陣,然後逐個判斷,一下的改為0,以上的改為1:

a=rand(m,n);

for i=1:m

for j=1:n

if a(i,j)<=

a(i,j)=0;

elsea(i,j)=1;

endendend

8樓:姒秀愛庹香

樓上的方復法有問題,產生制的是0,-1,1的隨機矩陣,不是-1和1應該改成:

clear;

clc;a=randint(3,2);

產生由0和1組成的,m*n維隨機矩陣。

a(find(a==0))=-1;

轉換成-1和1的矩陣。

9樓:

用rand生成0-1之間隨機數,再使用round函式四捨五入取整round函式取整的意義為回:對陣列中每個元素答朝最近的方向取整數部分。

matlab code

a=rand(m,n);%生成m*n維矩陣,矩陣為0-1之間的隨機數a=round(a);%矩陣a中小於的數返回0,大於的數返回1

10樓:珂珂的失樂園

這個好簡單,只需要兩條命令。

a=rand(10)

b=round(a)

11樓:義狼

round(rand(m,n)) 即可產生m行n列的矩陣。

如:round(rand(4,5))

12樓:網友

randint(4,5)%生成4行5列0-1隨機矩陣。

13樓:網友

沒聽說過有直接生成的。

可以這樣子,比如要生成m*n的矩陣,先用rand函式生成元素均為0-1之間的隨機數的矩陣,然後逐個判斷,一下的改為0,以上的改為1:

a=rand(m,n);

for i=1:m

for j=1:n

if a(i,j)<=

a(i,j)=0;

elsea(i,j)=1;

endendend

如何用matlab產生一0、1隨機數列

14樓:潮潮

1、我們先在電腦上找到matlab,點選開啟,如下。

2、點選輸入r = rand(n),因為最常用的隨機數生成**是r = rand(n),這樣子生成的是n×n的隨機數,都是0到1的數字。

3、然後,點選回車鍵,就可以看到生成的隨機數了,如下圖所示,在這裡,n等於10。

4、如果只想生成乙個隨機數,將n改為1,然後再執行就可以了,如下,即產生了隨機數列。

15樓:我的j**a筆記

1、在matlab主視窗中輸入round(rand(1,10)*5) 回車。

2、命令 round(rand(1,1)*5) 回車。

3、在matlab主視窗中輸入round(rand(1,10)*9)-5 回車,可以看到生成的隨機數列。

4、或者在主視窗中輸入 randint(1,1,[5 9])回車。

5、在主視窗中輸入 randint(1,10,[10 20]) 回車。

6、在主視窗中輸入 randint(1,10,[-7 15]) 回車,也可以看到生成的隨機數列。

16樓:精品diy生活

一,matlab中生成隨機數主要有三個函式:rand, randn,randi

1,rand 生成均勻分佈的偽隨機數。分佈在(0~1)之間。

主要語法:rand(m,n)生成m行n列的均勻分佈的偽隨機數。

rand(m,n,'double')生成指定精度的均勻分佈的偽隨機數,引數還可以是'single'

rand(randstream,m,n)利用指定的randstream(我理解為隨機種子)生成偽隨機數。

2,randn 生成標準正態分佈的偽隨機數(均值為0,方差為1)

主要語法:和上面一樣。

3, randi 生成均勻分佈的偽隨機整數。

主要語法:randi(imax)在開區間(0,imax)生成均勻分佈的偽隨機整數。

randi(imax,m,n)在開區間(0,imax)生成mxn型隨機矩陣。

r = randi([imin,imax],m,n)在開區間(imin,imax)生成mxn型隨機矩陣。

示例驗證:均值分佈。

概率分佈圖:

y=rand(1,3000000);

hist(y,2000);

散點圖:y=rand(1,3000000);

plot(y)

二、正常情況下每次呼叫相同指令例如rand生成的偽隨機數是不同的,例如:rand(1,3)

rand(1,3)

matlab的輸出為:

ans =ans =

17樓:網友

你沒說要不要輸出整數。沒必要是整數的話就是「rand(1,8)」;如果是整數才用randi([0,1],1,8)

matlab怎麼生成0到1的隨機數

18樓:硪丨曖戀

在matlab 中產生0-1上均勻分佈的隨機數方法如下:

方法1、對於問題,如果 y 是m*n的服從0~1均勻分佈的隨機矩陣:

y = rand(m,n);

方法2、用統計工具箱,y = unifrnd(0,1,m,n).

另外,提供常用的函式分佈供參考:

1、 均勻分佈u(a,b)

產生m*n階[a,b]均勻分佈u(a,b)的隨機數矩陣:unifrnd (a,b,m, n)

1分佈u(0,1)

產生m*n階[0,1]均勻分佈的隨機數矩陣:rand (m, n)

3、二類分佈binornd(n,p,mm,nn),即產生mm*nn均值為n*p的矩陣。

4、產生m*n階離散均勻分佈的隨機數矩陣:

unidrnd(n,mm,nn) 產生乙個數值在1-n區間的mm*nn矩陣;

5、產生mm nn階期望值為 的指數分佈的隨機數矩陣:exprnd ( mm, nn).

怎樣用MATLAB畫函式y 1 x 2 10 10 x 9的圖形?急啊

擬合引數,採用多元線性迴歸,程式如下 clear clc x 0.064 0.068 0.072 0.074 0.078 0.082 0.09 0.0961 0.1153 0.13 0.21 0.4 0.6 0.8 1 y 7.5 5 2.5 0 2.5 5 7.5 8.75 8.75 7.5 5 ...

matlab怎樣給第乙個矩陣1號位置賦值,第二個矩陣2號位置賦值?

matlab怎樣給第乙個矩陣號位置賦值,第二個矩陣號位置賦值?有時候我們使用matlab進行運算的時候,想給矩陣進行賦值,怎麼賦值呢,下面來分享一下方法。工具原料matlab給矩陣賦值的幾種方法。方法 步驟分步閱讀。第一步可以通過zeros函式進行賦值,輸入a zeros , 生成了乙個全矩陣,如下...

怎樣用成語形容人做事沒有原則,怎樣用一個成語形容一個人做事沒有原則

好好先生 bai 金山詞霸 拼 音 duh o h o xi n sh ng 解 釋 zhi 指不堅持原則 對誰也不敢dao或不願得罪的人內.出 處 容 元 無名氏 水仙子 冬 曲 只不如胡盧兄弟每日相逐趁 到能夠吃肥羊飲巨觥 得便宜是好好先生.八面玲瓏,逢迎拍馬,啊迂奉承 人云亦云,朝秦暮楚,飄忽...