请问:怎样用matlab随机生成一个只有0,1元素的矩阵?用什么命令,谢谢啊!
编写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) < 0.5
BinaryMatrix(count_i, count_j) = 0;
else
BinaryMatrix(count_i, count_j) = 1;
end
end
end
end
在命令行窗口中,(假设要输入4行7列的0、1填充的矩阵)令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...]),产生随机数组
参考资料:
没听说过有直接生成的方法。
可以这样子,比如要生成m*n的矩阵,先用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)<=0.5
A(i,j)=0;
else
A(i,j)=1;
end
end
end
扩展资料:
用rand产生0到1之间的随机数。
举个例子,假设需要1到5之间100个数,1+(5-1)*rand(1,100)就行了。rand(a,b)表示a行b列。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等;
主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
参考资料:
用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)<=0.5
A(i,j)=0;
else
A(i,j)=1;
end
end
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矩阵
用法同2
4、随机数矩阵
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、对角矩阵
diag
10、左右调换
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)
round函数取整的意义为:对数组中每个元素朝最近的方向取整数部分
Matlab code
A=rand(m,n);%生成m*n维矩阵,矩阵为0-1之间的随机数
A=round(A);%矩阵A中小于0.5的数返回0,大于0.5的数返回1
可以这样子,比如要生成m*n的矩阵,先用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)<=0.5
A(i,j)=0;
else
A(i,j)=1;
end
end
end