Как создать разреженную случайную матрицу в Matlab со значением, отличным от значения по умолчанию [0,1]
, скажем [-1,1]
? Две вещи, которые я пробовал, что, очевидно, не работает, являются:Локальная случайная матрица в Matlab со значениями в разных диапазонах, чем [0,1]
p = 2 * sprand(5,5,0.1) - 1
который возвращает
>> p = -1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-1.0000 -1.0000 -1.0000 -1.0000 -1.0000
-1.0000 -1.0000 -0.4850 -1.0000 -1.0000
0.6814 -1.0000 -1.0000 -1.0000 -1.0000
И
p = ceil(sprand(5,5,0.1));
p(find(p)) = 2 * rand(5) - 1;
full(p)
который возвращает
>> ans = 0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0.3112 0 0
0.3112 0 0 0 0
Я хотел бы решение, которое не связано с циклом g и использует только матричные манипуляции или встроенные функции Matlab.