楼主: liuzl434869604
2305 4

[问答] matlab随机数的按比例替换 [推广有奖]

  • 0关注
  • 0粉丝

已卖:104份资源

硕士生

50%

还不是VIP/贵宾

-

威望
0
论坛币
4851 个
通用积分
7.0500
学术水平
1 点
热心指数
1 点
信用等级
1 点
经验
21610 点
帖子
22
精华
0
在线时间
331 小时
注册时间
2016-12-2
最后登录
2025-12-23

楼主
liuzl434869604 发表于 2018-2-6 14:24:39 |AI写论文
50论坛币
求助~
  在随机生成符合泊松分布的随机数后,我把它们纳入进一个方阵

请问如何在matlab中 把这个矩阵的对角元换成0后

按一定比例(假设比例为a)将矩阵中的非0随机数  替换为0呢?

主要是以后用来  模拟替换数据后   某种算法的误差范围。

非常感谢各位~~!!!

最佳答案

lixuewei3 查看完整内容

先找到非0随机数的位置序号,假如说一个100个,那你可以用randi([1,100],4,5)随机生成4行5列个随机序号,将随机序号位置替换为0就可以了
关键词:MATLAB matla atlab Mat Atl

沙发
lixuewei3 发表于 2018-2-6 14:24:40
先找到非0随机数的位置序号,假如说一个100个,那你可以用randi([1,100],4,5)随机生成4行5列个随机序号,将随机序号位置替换为0就可以了


已有 1 人评分论坛币 学术水平 收起 理由
happy_287422301 + 100 + 1 热心帮助其他会员

总评分: 论坛币 + 100  学术水平 + 1   查看全部评分

藤椅
liuzl434869604 发表于 2018-2-6 14:25:12
假设这个方阵是n*n维的

板凳
liuzl434869604 发表于 2018-2-13 20:23:51 来自手机
lixuewei3 发表于 2018-2-8 16:50
先找到非0随机数的位置序号,假如说一个100个,那你可以用randi([1,100],4,5)随机生成4行5列个随机序号,将 ...
你好
我是想要将矩阵里的一部分非零随机数换成0,比如替换百分之十的数据

所以请问这个比例替换 代码怎么写呢

报纸
lixuewei3 发表于 2018-2-14 09:10:51
liuzl434869604 发表于 2018-2-13 20:23
你好
我是想要将矩阵里的一部分非零随机数换成0,比如替换百分之十的数据
那你可以直接将生成的总数那里改成非零数目个数*0.1 不就可以了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-23 20:47