请问:怎样用matlab随机生成一个只有0,1元素的矩阵?用什么命令,谢谢啊!
楼上的方法有问题,产生的是0,-1,1的随机矩阵,不是-1和1
应该改成:
clear;
clc;
a=randint(3,2); %产生由0和1组成的,m*n维随机矩阵
a(find(a==0))=-1; %%%% 转换成-1和1的矩阵
例如:A=rand(8,5)>0.3;
其中(8,5)是矩阵大小,0.3是矩阵中出现元素0的概率,也即出现元素1的概率为0.7,望采纳。
编写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函数
没听说过有直接生成的方法。
可以这样子,比如要生成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百度百科
用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)
用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
没听说过有直接生成的。
可以这样子,比如要生成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
请问:怎样用matlab随机生成一个只有0,1元素的矩阵?用什么命令,谢谢啊!视频
相关评论:
解肃霭第一种方法是用 random 语句,其一般形式为 y = random('分布的英文名',A1,A2,A3,m,n),表示生成 m 行 n 列的 m × n 个参数为 ( A1 , A2 , A3 ) 的该分布的随机数。例如:(1) R = random('Normal',0,1,2,4): 生成期望为 0,标准差为 1 的(2 行 4 列)2× 4 个正态...
解肃霭这样看你随即生成什么曲线了 如果是直线 那么只要使用Matlab随即生成直线的那三个参数就好了其他曲线我们也只需要生成对应的控制参数如果说是任何任意的曲线,那么可以直接使用rand生成随机点 再连接起来就好了
解肃霭你可以用randint(m,n)是生成只有0,1的m*n维矩阵 然后randint(m,n).*2-1 就可以了 例如运行如下程序 randint(3,4).*2-1 ans = 1 1 -1 1 1 1 1 -1 -1 -1 1 1
解肃霭Matlab代码:```matlab 生成100个随机数 random_numbers = rand(100, 1) * 100; % 生成100个介于0到100之间的随机数 保存到txt文件 dlmwrite('random_numbers.txt', random_numbers, 'precision', '%.6f');```接下来是C语言程序的部分,为简化起见,我们在这里实现一个简单的冒泡排序算法。C...
解肃霭首先输入等于RANDBETWEEN 函数,然后输入需要生成的字段,在输入需要结束的字段,按回车确定,在填充公式,这样就能批量生成随机数字。
解肃霭在matlab中用来产生指数分布随机数的函数是exprnd( );语法:1. R=exprnd(MU)生成服从参数为MU的指数分布随机数。2. R=exprnd(MU,m)生成服从参数为MU的指数分布的随机数矩阵,矩阵的形式由m定义。例如,n=exprnd(5,[1 6])3. R=exprnd(MU,m,n)生成m×n形式的指数分布的随机数矩阵。当...
解肃霭使用matlab里面的rand函数可以生成随机数函数。rand函数的用法 :(1)命令:rand(N),rand(M,N)等 (2)对于rand(N),通过help rand得到的解释是:R = rand(N) returns an N-by-N matrix containing pseudorandom values drawn from the standard uniform distribution on the open interval(0,1...
解肃霭有时候我们在使用matlab进行数学运算的时候,想生成正态分布随机数,怎么生成呢,下面来分享一下方法 第一步我们首先需要知道matlab中可以使用randn函数生成正态分布随机数,在命令行窗口中输入“help randn”,可以看到randn函数的使用方法,如下图所示:第二步输入randn(5),生成一个均值为0,方差和标准差...
解肃霭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...]),产生随机数组(感觉就是三维数组,请看如下例子)。
解肃霭matlab A = rand(10,10)*100; % 产生0到100之间的随机数矩阵 B = (A > 40 & A < 60); % 产生逻辑数组,符合条件的元素为1,否则为0 A(B) = NaN; % 将符合条件的元素用NaN替换 上述代码中,rand(10,10)*100产生10×10的随机数矩阵,其中每个元素都在0到100之间均匀分布。然后,...