我有一个4x4
数组,其中包含如下值:
A =
4 0 0 0
0 2 0 0
0 0 3 0
1 0 0 0
如何使用1到4的随机整数填充零?
答案 0 :(得分:3)
只需使用randi
生成随机整数,并使用零位置掩码
A = [ 4 0 0 0
0 2 0 0
0 0 3 0
1 0 0 0];
m = A == 0;
A(m) = randi ([1 4], nnz (m), 1);
这样做的优点是,更典型的B = A + ~A .* randi (4, size (A))
,是节省一些计算时间。它生成所需随机数的确切数量,并将它们分配到特定位置。它不会对所有元素进行加法和乘法。
答案 1 :(得分:3)
B=A+~A.*randi(4,size(A))
生成一个大小为A的随机矩阵,乘以一个逻辑矩阵(~A),其中A有一个值,其中A有一个值,然后加到A.