作业帮 > 综合 > 作业

请问Matlab如何随机选取矩阵(如32*128)中一定比例的元素,将其替换成随机数?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/05 12:22:14
请问Matlab如何随机选取矩阵(如32*128)中一定比例的元素,将其替换成随机数?
其实是要随机将图形的一部分替换成白噪音,而且是在很短的时间内完成(因为图形本身还需要不断刷新).
想过用randperm,但只能生成一维的顺序.如何把二维的抽取元素变成一维的随机问题?
也试过用循环,逐个随机抽取元素检测,如果没有替换过就将其替换,直到满足比例的要求.这种方法倒是可行,但矩阵大了之后运行效率非常低,满足不了速度的要求.有没有别的办法?
比较着急,还望各位不吝赐教啊,
用randperm就行.
比如你的矩阵A为32*128的矩阵
变噪声的比例为a
noise_int=randperm(32*128);
n_index=noise_int(1:round(a*32*128));
要替换成白噪声的元素为 A(n_index)