Function requires number as input; I want to enter a variable though!
Show older comments
Hi everyone! So, I am currently working on a code that uses the rand function. I have a variable set to a particular value, and the value changes based on the user's input to the function. I want to use this variable in the rand function. However, when I run the code, an error comes back stating that I can only enter numbers into the rand function, not variables. Any idea how I can get around this?
Thank you in advance!
Answers (1)
KSSV
on 13 Jan 2017
% rand column vectors
col = 3 ;
rand(col,1)
% rand row vectors
row = 4 ;
rand(1,row)
% matrix of rand
rand(row,col)
rand needs only number as input. If you still face problem, show the code how you have called it.
6 Comments
Sean Farrell
on 13 Jan 2017
I suggest you read the documentation of rand. The inputs, including the first one, define the size of the matrix returned by rand. Obviously a size has to be integer, and that's exactly what the error message is telling you.
I have no idea what you're trying to obtain with that amount variable. If it's supposed the be the upper bound of rand, then once again the documentation shows you exactly how to do that.
Sean Farrell
on 13 Jan 2017
KSSV
on 15 Jan 2017
If amount is fraction, then rand throws error. You may convert amount to an integer using either fix or round. Read about fix,round,ceil,floor.
Image Analyst
on 15 Jan 2017
Like this:
function A = catalyst_dispersion(b)
total = 1
amount = round(b*total);
random = rand(amount, 1);
Sean Farrell
on 15 Jan 2017
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!