当前位置

首页 > IT科技 > matlab怎么生成随机矩阵

matlab怎么生成随机矩阵

推荐人: 来源: 秒知社 阅读: 1.14W 次

(1) rand:产生均值为0.5、幅度在0~1之间的伪随机数 (2) randn:产生均值为0、方差为1的高斯白噪声 (3) randperm(n):产生1到n的均匀分布随机序列 (4) normrnd(a,b,c,d):产生均值为a、方差为b大小为cXd的随机矩阵

在MATLAB中,我们常常会用到一些随机数据,那么这些数据是怎么生成的呢?下面一起来看一看

方法

unifrnd (a,b) ;产生一个[a,b]的均匀随机数

用rand函数生成元素均为0-1之间的随机数的矩阵,然后逐个判断,0.5一下的改为0,0.5以上的改为1: A=rand(m,n); for i=1:m for j=1:n if A(i,j)

matlab怎么生成随机矩阵

rand (m, n);产生m*n阶[0,1]均匀分布的随机数矩阵

生成n个uniform(0,1)随机数x,然后计算乘积A=xx',A是一个n*n矩阵。 两个独立随机数的乘积的期望是1/4,(虽然可能不再是uniform分布了)。 那么取G=(A>1/4),G就会是一个对称的矩阵。 如果需要,对角线上的乘积期望不是1/4,可以特殊处理一下。

matlab怎么生成随机矩阵 第2张

binornd(n,p,[M,N,P,...])产生的是服从二项分布的随机数,二项分布的参数为:n和p

删除多余变量矩阵 直接ctrl+s 就能保存当前工作区下的变量矩阵 也有函数save 用于保存 上面第一种方法比较简单 且方便 save函数 语言设置一些参数 具体的参数设置记得不是很清楚了 但也是比较简单的 可以help 一下进行了解 非常简单 不知道你问

matlab怎么生成随机矩阵 第3张

unidrnd(N,m,n) ;产生m*n阶离散均匀分布的随机数矩阵;产生一个数值在1-N之间的mm*nn矩阵

在matlab中“建立5*6的随机矩阵,其元素为【100,200】范围内的随机整数”通过random函数来进行实现。 matlab中random函数用法为:y=random('norm',A1,A2,A3,m,n)。式中:A1,A2,A3为分布的参数,m,n用来指定随机数的行和列,name的取值有相关的

matlab怎么生成随机矩阵 第4张

exprnd (mu ,m, n)产生m*n阶期望值为mu的指数分布的随机数矩阵

1、首先启动matlab,启动界面如图所示。 2、在命令行窗口中输入代码:[0:0.1:1]。 3、点击回车,可以看到结果从0开始每次增加0.1到1结束。 4、赋予变量x从0到1等值增大的值。在命令行窗口中输入代码:x=[0:0.1:1]。 5、点击回车后便会显示出x变

matlab怎么生成随机矩阵 第5张

扩展阅读,以下内容您可能还感兴趣。

怎样用MATLAB生成一个4行5列的间的随机矩阵

rand(4,5) % 四行五列(0,1)之间的随机矩阵

% 如果范围不在0-1之间,可以相应调整

ceil(rand(4,5)*10) % [1,10]之间随机整数

matlab 随机生成每列只有一个1 其余为0的矩阵

m=10;%行数

n=15;%列数

A=zeros(m,n); %生成全零矩阵

b=randi(m,[1 n]); %生成n个从1到m的随机整数

ind=sub2ind([m,n],b,1:n);%形成位置

A(ind)=1;%将对应位置变为1

matlab中怎么随机生成一个M*N矩阵,使每列和为一固定值,每个元素为整数?

% function num=randn(min_n,max_n,m,n)

%思路:

%对于某一列,先产生该列第一个随机数a,其范围为[min_n,max_n]

%然后产生该列第二个随机数b,其范围为[min_n,max_n-a]

%之后产生该列第三个随机数c,其范围为[min_n,max_n-a-b]

%终止条件为max_n-a-b<=min_n

min_n=2;%最小值

max_n=100;%最大值

m=5;%行数,注:行数不宜大,否则0元素过多

n=30;%列数

num=zeros(m,n);%初始化

for i=1:n

for j=1:m

if round(max_n-sum(num(1:j,i)))>min_n%随机数产生的终止条件

num(j,i)=floor(min_n+(max_n-sum(num(1:j,i)))*rand);%产生随机数

end

end

end追问有点问题,就是每列最后一个应为总数减前面总数的差,加一句

num(m,i)=max-sum(num(1:m-1,i));%每列最后元素为剩下的个数

就行了,还是谢谢提供思路。追答嗯 不好意思我遗漏了 难怪会那么多0 嘿嘿

MATLAB 随机产生一个矩阵序列

生成一个元素为0-11之间的M*N维矩阵,这里以M=6,N=9为例,在MATLAB主窗口中输入R=round(11*rand(6,9)),回车。更多追问追答追问要随时监控矩阵中的每一个元素呢,这个怎么解决呢追答你是要监控矩阵中数据的变化还是其它类型的监控?追问这么说吧,希望能够提取第k个矩阵的某一个分量,小白求指教

matlab如何生成满足一定条件数要求的随机矩阵。

你可以先构造特征值,使得最大特征值除以最小特征值为1000,再随机的生成正交矩阵作为特征向量矩阵,从而重构出所要的矩阵。如下所示,构造了个3*3的矩阵,其条件数为1000:

>> V = diag([1000 20 1]); % 只要最大除最小等于1000即可

>> U = orth(randn(3, 3));

>> A = U*V*U^-1;

>> cond(A)

ans =

1000.0000

下次问编程类问题选择问题分类为编程吧,这样可以贴代码。