Changing values in vector

Hello I have 1000 datas created by "randn" (A=randn(1,1000)). I want to change every value(n) which is not suitable for 1 < abs(A(n)) < 10. Also, new values should have been created by randn again. And it should provides the 1 < abs(A(n)) < 10 condition. So, I think have to create for loop for changing values until they provide the condition. How can I do that?

 Risposta accettata

Setsuna Yuuki.
Setsuna Yuuki. il 16 Nov 2020
Modificato: Setsuna Yuuki. il 16 Nov 2020
You can try this code
a = abs(randn(1,1000))
cont = 1;
while cont < length(a)+1
if(a(cont) < 1 || a(cont) > 10)
a(cont) = randn(1);
cont = 0;
end
cont = cont+1;
end

3 Commenti

Mr.Chandler
Mr.Chandler il 16 Nov 2020
You changed all values positive before while loop. I don't need it. All I need is, changing each n value in A=randn(1,1000) which is not suitable for 1 < abs(A(n)) < 10. Until they are suitable ofc.
Setsuna Yuuki.
Setsuna Yuuki. il 16 Nov 2020
ohh i didn't see it, but it should work without abs()
Mr.Chandler
Mr.Chandler il 16 Nov 2020
Yes, I think it is okay. I arrange it a little bit. Thanks so much.

Accedi per commentare.

Più risposte (0)

Prodotti

Release

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by