请问:怎样用matlab随机生成一个只有0,1元素的矩阵?用什么命令,谢谢啊!

 我来答
丿MarsHan
2018-12-18 · TA获得超过4921个赞
知道答主
回答量:79
采纳率:0%
帮助的人:43.2万
展开全部

编写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...]),产生随机数组

参考资料:

MathWorks——rand函数

芒果爱橙子
高粉答主

2018-12-12 · 关注我不会让你失望
知道答主
回答量:47
采纳率:100%
帮助的人:1.3万
展开全部

没听说过有直接生成的方法。

可以这样子,比如要生成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可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等;

主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

参考资料:

MATLAB百度百科

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大野瘦子
高粉答主

2018-12-22 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.4万
展开全部

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)

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zsw_122
2019-01-24
知道答主
回答量:10
采纳率:0%
帮助的人:3万
展开全部
用rand生成0-1之间随机数,再使用round函数四舍五入取整
round函数取整的意义为:对数组中每个元素朝最近的方向取整数部分
Matlab code
A=rand(m,n);%生成m*n维矩阵,矩阵为0-1之间的随机数
A=round(A);%矩阵A中小于0.5的数返回0,大于0.5的数返回1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
stevenxcy
2010-10-21 · TA获得超过229个赞
知道答主
回答量:161
采纳率:0%
帮助的人:182万
展开全部
没听说过有直接生成的。
可以这样子,比如要生成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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式