我想把matlab矩阵里随机抽取20%的数字的值变成0,请问如何操作?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%,以
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/14 20:15:55
![我想把matlab矩阵里随机抽取20%的数字的值变成0,请问如何操作?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%,以](/uploads/image/z/11397038-14-8.jpg?t=%E6%88%91%E6%83%B3%E6%8A%8Amatlab%E7%9F%A9%E9%98%B5%E9%87%8C%E9%9A%8F%E6%9C%BA%E6%8A%BD%E5%8F%9620%25%E7%9A%84%E6%95%B0%E5%AD%97%E7%9A%84%E5%80%BC%E5%8F%98%E6%88%900%2C%E8%AF%B7%E9%97%AE%E5%A6%82%E4%BD%95%E6%93%8D%E4%BD%9C%3FRT%E6%AF%94%E5%A6%82%E8%AF%B4%E5%91%A2+%E4%B8%80%E4%B8%AA5X5%E7%9A%84%E7%9F%A9%E9%98%B5a%3D%5B1+1+1+1+1%3B1+1+1+1+1%3B1+1+1+1+1%3B1+1+1+1+1%3B1+1+1+1+1%3B%5D%2C%E6%9C%89+25%E4%B8%AA%E5%9D%91%2C%E6%88%91%E6%83%B3%E9%9A%8F%E6%9C%BA%E8%AE%A9%E5%85%B6%E4%B8%AD5%E4%B8%AA%E5%9D%91%E5%8F%98%E6%88%900%2C%E8%AF%B7%E9%97%AE%E6%80%8E%E4%B9%88%E6%93%8D%E4%BD%9C%3F%E9%99%A4%E4%BA%8620%25%2C%E4%BB%A5)
我想把matlab矩阵里随机抽取20%的数字的值变成0,请问如何操作?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%,以
我想把matlab矩阵里随机抽取20%的数字的值变成0,请问如何操作?
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的百分比要有一个变量空着着,不求算法,只求实现,
我想把matlab矩阵里随机抽取20%的数字的值变成0,请问如何操作?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%,以
>> 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