请问如何构造一个n*m稀疏度为0.4的矩阵,其中每个元素取值范围为[-1,1]。我试了两天没有搞定!

来源:百度知道 编辑:UC知道 时间:2024/07/04 05:56:45
每个元素是随机的

很好构造吧,有没有要求矩阵的秩。

稀疏度为0.4,那么n*m的矩阵共有0.4*n*m个非零元素的矩阵。

随机的元素范围在[-1,1]之间,需要使用电脑产生随机数数列。假设要构造一个4*5矩阵,哪么非零元素共有0.4*4*5=8个。

首先产生8个在[-1,1]之间的随机数。

0.2309 0.4764 0.5839 -0.6475 0.8338 0.8436 -0.1886 -0.1795

构造一个4*5 的矩阵

0.2309 0 0 0 -0.1795
0 0.4764 0 0 -0.1886
0 0 0.5839 0 0.8436
0 0 0 -0.6475 0.8338

你首先随机生成n*m*0.6个不重复的在区间[0, n*m-1]的整数,然后根据这些整数,找到在矩阵中的位置。例如生成的整数为I,那么它在矩阵中的位置就为(I / n -1, I % m).将这些位置的数全部置0,然后扫描矩阵,对于矩阵中非零的位置,生成一个[-1,1]的数填充