(1) rand:產(chǎn)生均值為0.5、幅度在0~1之間的偽隨機(jī)數(shù) (2) randn:產(chǎn)生均值為0、方差為1的高斯白噪聲 (3) randperm(n):產(chǎn)生1到n的均勻分布隨機(jī)序列 (4) normrnd(a,b,c,d):產(chǎn)生均值為a、方差為b大小為cXd的隨機(jī)矩陣
在MATLAB中,我們常常會(huì)用到一些隨機(jī)數(shù)據(jù),那么這些數(shù)據(jù)是怎么生成的呢?下面一起來看一看
方法
unifrnd (a,b) ;產(chǎn)生一個(gè)[a,b]的均勻隨機(jī)數(shù)
用rand函數(shù)生成元素均為0-1之間的隨機(jī)數(shù)的矩陣,然后逐個(gè)判斷,0.5一下的改為0,0.5以上的改為1: A=rand(m,n); for i=1:m for j=1:n if A(i,j)
rand (m, n);產(chǎn)生m*n階[0,1]均勻分布的隨機(jī)數(shù)矩陣
生成n個(gè)uniform(0,1)隨機(jī)數(shù)x,然后計(jì)算乘積A=xx',A是一個(gè)n*n矩陣。 兩個(gè)獨(dú)立隨機(jī)數(shù)的乘積的期望是1/4,(雖然可能不再是uniform分布了)。 那么取G=(A>1/4),G就會(huì)是一個(gè)對(duì)稱的矩陣。 如果需要,對(duì)角線上的乘積期望不是1/4,可以特殊處理一下。
binornd(n,p,[M,N,P,...])產(chǎn)生的是服從二項(xiàng)分布的隨機(jī)數(shù),二項(xiàng)分布的參數(shù)為:n和p
刪除多余變量矩陣 直接ctrl+s 就能保存當(dāng)前工作區(qū)下的變量矩陣 也有函數(shù)save 用于保存 上面第一種方法比較簡(jiǎn)單 且方便 save函數(shù) 語言設(shè)置一些參數(shù) 具體的參數(shù)設(shè)置記得不是很清楚了 但也是比較簡(jiǎn)單的 可以help 一下進(jìn)行了解 非常簡(jiǎn)單 不知道你問
unidrnd(N,m,n) ;產(chǎn)生m*n階離散均勻分布的隨機(jī)數(shù)矩陣;產(chǎn)生一個(gè)數(shù)值在1-N之間的mm*nn矩陣
在matlab中“建立5*6的隨機(jī)矩陣,其元素為【100,200】范圍內(nèi)的隨機(jī)整數(shù)”通過random函數(shù)來進(jìn)行實(shí)現(xiàn)。 matlab中random函數(shù)用法為:y=random('norm',A1,A2,A3,m,n)。式中:A1,A2,A3為分布的參數(shù),m,n用來指定隨機(jī)數(shù)的行和列,name的取值有相關(guān)的
exprnd (mu ,m, n)產(chǎn)生m*n階期望值為mu的指數(shù)分布的隨機(jī)數(shù)矩陣
1、首先啟動(dòng)matlab,啟動(dòng)界面如圖所示。 2、在命令行窗口中輸入代碼:[0:0.1:1]。 3、點(diǎn)擊回車,可以看到結(jié)果從0開始每次增加0.1到1結(jié)束。 4、賦予變量x從0到1等值增大的值。在命令行窗口中輸入代碼:x=[0:0.1:1]。 5、點(diǎn)擊回車后便會(huì)顯示出x變
擴(kuò)展閱讀,以下內(nèi)容您可能還感興趣。
怎樣用MATLAB生成一個(gè)4行5列的間的隨機(jī)矩陣
rand(4,5) % 四行五列(0,1)之間的隨機(jī)矩陣
% 如果范圍不在0-1之間,可以相應(yīng)調(diào)整
ceil(rand(4,5)*10) % [1,10]之間隨機(jī)整數(shù)
matlab 隨機(jī)生成每列只有一個(gè)1 其余為0的矩陣
m=10;%行數(shù)
n=15;%列數(shù)
A=zeros(m,n); %生成全零矩陣
b=randi(m,[1 n]); %生成n個(gè)從1到m的隨機(jī)整數(shù)
ind=sub2ind([m,n],b,1:n);%形成位置
A(ind)=1;%將對(duì)應(yīng)位置變?yōu)?
matlab中怎么隨機(jī)生成一個(gè)M*N矩陣,使每列和為一固定值,每個(gè)元素為整數(shù)?
% function num=randn(min_n,max_n,m,n)
%思路:
%對(duì)于某一列,先產(chǎn)生該列第一個(gè)隨機(jī)數(shù)a,其范圍為[min_n,max_n]
%然后產(chǎn)生該列第二個(gè)隨機(jī)數(shù)b,其范圍為[min_n,max_n-a]
%之后產(chǎn)生該列第三個(gè)隨機(jī)數(shù)c,其范圍為[min_n,max_n-a-b]
%終止條件為max_n-a-b<=min_n
min_n=2;%最小值
max_n=100;%最大值
m=5;%行數(shù),注:行數(shù)不宜大,否則0元素過多
n=30;%列數(shù)
num=zeros(m,n);%初始化
for i=1:n
for j=1:m
if round(max_n-sum(num(1:j,i)))>min_n%隨機(jī)數(shù)產(chǎn)生的終止條件
num(j,i)=floor(min_n+(max_n-sum(num(1:j,i)))*rand);%產(chǎn)生隨機(jī)數(shù)
end
end
end追問有點(diǎn)問題,就是每列最后一個(gè)應(yīng)為總數(shù)減前面總數(shù)的差,加一句
num(m,i)=max-sum(num(1:m-1,i));%每列最后元素為剩下的個(gè)數(shù)
就行了,還是謝謝提供思路。追答嗯 不好意思我遺漏了 難怪會(huì)那么多0 嘿嘿
MATLAB 隨機(jī)產(chǎn)生一個(gè)矩陣序列
生成一個(gè)元素為0-11之間的M*N維矩陣,這里以M=6,N=9為例,在MATLAB主窗口中輸入R=round(11*rand(6,9)),回車。更多追問追答追問要隨時(shí)監(jiān)控矩陣中的每一個(gè)元素呢,這個(gè)怎么解決呢追答你是要監(jiān)控矩陣中數(shù)據(jù)的變化還是其它類型的監(jiān)控?追問這么說吧,希望能夠提取第k個(gè)矩陣的某一個(gè)分量,小白求指教
matlab如何生成滿足一定條件數(shù)要求的隨機(jī)矩陣。
你可以先構(gòu)造特征值,使得最大特征值除以最小特征值為1000,再隨機(jī)的生成正交矩陣作為特征向量矩陣,從而重構(gòu)出所要的矩陣。如下所示,構(gòu)造了個(gè)3*3的矩陣,其條件數(shù)為1000:
>> V = diag([1000 20 1]); % 只要最大除最小等于1000即可
>> U = orth(randn(3, 3));
>> A = U*V*U^-1;
>> cond(A)
ans =
1000.0000
下次問編程類問題選擇問題分類為編程吧,這樣可以貼代碼。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:0731-84117792 E-MAIL:11247931@qq.com