我想把matlab矩阵里随机抽取20%的数字的值变成0,请问如何操作?
RT比如说呢一个5X5的矩阵a=[11111;11111;11111;11111;11111;],有25个坑,我想随机让其中5个坑变成0,请问怎么操作?除了20%,以后还...
RT
比如说呢 一个5X5的矩阵
a=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;]
,有 25个坑,
我想随机让其中5个坑变成0,请问怎么操作?除了20%,以后还要40%,50%,60%等,所以这个变0的百分比要有一个变量空着着,不求算法,只求实现,谢谢回答! 展开
比如说呢 一个5X5的矩阵
a=[1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;]
,有 25个坑,
我想随机让其中5个坑变成0,请问怎么操作?除了20%,以后还要40%,50%,60%等,所以这个变0的百分比要有一个变量空着着,不求算法,只求实现,谢谢回答! 展开
3个回答
展开全部
>> A=floor(rand(5,7)*100);%随机生成5行7列且元素为(0,100)之间的整数矩阵
>> A
A =
49 75 95 84 34 35 28
95 25 54 25 19 83 75
34 50 13 81 25 58 75
58 69 14 24 61 54 38
22 89 25 92 47 91 56
>> [r,c]=size(A)
r =
5
c =
7
>> totalNum=r*c;%由矩阵的行列数得出矩阵元素总个数
>> randomIndex=1+floor(rand(1,floor(totalNum*0.2))*totalNum)%生成值在1到矩阵总元素个数totalNum之间的totalNum*20%个随机数,作为矩阵中将要置零的元素的下标索引(此时把矩阵看作是一个一维数组)
randomIndex =
3 2 19 28 33 5 20
>> A(randomIndex)=0;%跟生成的随机元素索引,来把相应的元素置零
>> A
A =
49 75 95 84 34 35 28
0 25 54 25 19 83 75
0 50 13 81 25 0 0
58 69 14 0 61 54 38
0 89 25 0 47 91 56
可见将35*20%个元素随机的置零了
将下面的语句复制到Command Window,或建立.m文件运行即可(每次运行结果都不一样):
A=floor(rand(5,7)*100)
[r,c]=size(A)
totalNum=r*c;
randomIndex=1+floor(rand(1,floor(totalNum*0.2))*totalNum)
A(randomIndex)=0
>> A
A =
49 75 95 84 34 35 28
95 25 54 25 19 83 75
34 50 13 81 25 58 75
58 69 14 24 61 54 38
22 89 25 92 47 91 56
>> [r,c]=size(A)
r =
5
c =
7
>> totalNum=r*c;%由矩阵的行列数得出矩阵元素总个数
>> randomIndex=1+floor(rand(1,floor(totalNum*0.2))*totalNum)%生成值在1到矩阵总元素个数totalNum之间的totalNum*20%个随机数,作为矩阵中将要置零的元素的下标索引(此时把矩阵看作是一个一维数组)
randomIndex =
3 2 19 28 33 5 20
>> A(randomIndex)=0;%跟生成的随机元素索引,来把相应的元素置零
>> A
A =
49 75 95 84 34 35 28
0 25 54 25 19 83 75
0 50 13 81 25 0 0
58 69 14 0 61 54 38
0 89 25 0 47 91 56
可见将35*20%个元素随机的置零了
将下面的语句复制到Command Window,或建立.m文件运行即可(每次运行结果都不一样):
A=floor(rand(5,7)*100)
[r,c]=size(A)
totalNum=r*c;
randomIndex=1+floor(rand(1,floor(totalNum*0.2))*totalNum)
A(randomIndex)=0
展开全部
不知道你具体指的是什么
随机数已经选取好了的话可以直接赋值为0
随机数可以选择randi(n),生成0---n之间均匀分布的伪随机数 随便选取五分之一的部分应该你想用的 然后挨个赋值就好了
随机数已经选取好了的话可以直接赋值为0
随机数可以选择randi(n),生成0---n之间均匀分布的伪随机数 随便选取五分之一的部分应该你想用的 然后挨个赋值就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把抽取的值放到一个矩阵或者向量里,再令它为零
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询