how do I substitute all negative values in a vector with a random number between 0 and 2
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Malavan Subramaniam
el 17 de Sept. de 2019
Respondida: Shounak Shastri
el 17 de Sept. de 2019
How do I substitute all negative values in a vector (called y) with a random number between 0 and 2?
0 comentarios
Respuestas (3)
per isakson
el 17 de Sept. de 2019
One way
>> Y = randi( [-4,4], 1,12 ); % sample vector
>> isneg = Y < 0;
>> Y( isneg ) = 2*rand( 1, sum(isneg) )
Y = Columns 1 through 10
2 0.69135 0 2 0 0.72759 1.7308 2 0 3
Columns 11 through 12
1 0
0 comentarios
Shounak Shastri
el 17 de Sept. de 2019
The simplest (but not the most efficient) way to do this would be to inititalize a for loop and run through all the elements one-by-one.
for ii = 1:length(y)
if y(ii) < 0
y(ii) = randi([0, 2]);
end
end
The function randi() generates a random number bertween the limits given in the square brackets, in this case 0 and 2.
A better (faster and more efficient in terms of lines of code) way to do this would be
y (y < 0) = randi([0, 2]);
0 comentarios
Ver también
Categorías
Más información sobre Random Number Generation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!