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