MATLAB Answers

Non-integer values inside "Randi" function

12 views (last 30 days)
khalid alharthi
khalid alharthi on 16 Feb 2020
Edited: khalid alharthi on 17 Feb 2020
inputRvector = 'Input r vector for roots of the polynomial as a vector ';
R = input(inputRvector)
R_length = length(R);
input_lower_e_range = 'Input lower range of e ';
e_min = input(input_lower_e_range)
input_upper_e_range = 'Input upper range of e ';
e_max = input(input_upper_e_range)
random_perturbations = randi([e_min e_max],1,R_length);
Hey guys, I am trying to get an input from the user and use that input inside the 'randi' function as a range of vlaues and a length of the 'randi' vector. The trick is that I want values much lower than 1 in the range of (10^-1,10^-8) and I think randi doesnt work with non-integers. Got any ways to do the same except with non-integer values as in the range (10^-1,10^-8)?
I am trying to do as in this case:
r = randi([10 50],1,5)
r = 1×5
43 47 15 47 35
P.S: I have been looking for similar questions for 4 hours and could'nt find anything
Thank you in advance

  4 Comments

Show 1 older comment
khalid alharthi
khalid alharthi on 16 Feb 2020
No, it gives me this
Error using randi
Size inputs must be scalar.
Walter Roberson
Walter Roberson on 16 Feb 2020
What values are you entering for the prompts?
Are you entering a vector for the lower bounds and upper bounds?
khalid alharthi
khalid alharthi on 16 Feb 2020
I have also solved this problem.
The problem I am having now, is that randi only except integers and I need a way to have values like 10^-5.

Sign in to comment.

Answers (2)

Steven Lord
Steven Lord on 17 Feb 2020
If you want uniformly distributed random numbers that are not integers, randi is not the right tool for the job. See the examples in the documentation for the rand function.

  0 Comments

Sign in to comment.


Walter Roberson
Walter Roberson on 16 Feb 2020
random_perturbations = randi([e_min e_max],1,R);]
That ] should not be there at the end of the line.

  1 Comment

khalid alharthi
khalid alharthi on 16 Feb 2020
So sorry Mr. Roberson about that a was a typo and It wasnt the problem I had.

Sign in to comment.

Sign in to answer this question.