Im using randsample() but im getting an error

Im using randsample to make the program choose a random element from an array,
A=[2 3 4 5];
random=randsample(A,1)
but im getting an error that says 'randsample' requires Statistics and Machine Learning Toolbox.
So how can i make it work, or is there any other way i can make a random selection.

 Accepted Answer

@Tariq Hammoudeh yes, randsample requires the Statistics and Machine Learning Toolbox. If you just want to choose one random element from this array, you could do something like
A = [2 3 4 5];
randomValue = A(randi(length(A),1));

6 Comments

Thank you but i tried that and it didnt really work with my code because my actual code is me reading in external files using readmatrix() then putting the variables of these files into an array. So:
one=readmtarix()
two=readmatrix()
three=readmatrix()
A=[one two three]
x=A(randi(length(A),1))
is it possible to make x select either one or two or three (the variable names for the files)
so that i can use
if x==two
......
Im sorry i thought it would work the same as if it was numbers, so i just gave an example to make it simpler.
one=readmtarix();
two=readmatrix();
three=readmatrix();
A = {one two three};
x = A{randi(length(A))} ;
Now you can test
if x == two
It just isn't a good idea.
Thank you that workds fine because ill just place the ships one by one manually, but can i ask why did this work when we use {} instead of []
Correction, you would need to use
if isequal(x, two)
since we should not assume that the matrices are the same size.
I am having trouble coming up with reasons why you would want to compare entire configuration arrays to other configuration arrays. The information in the configuration file should give you everything you need to place the ships without human intervention, and the only thing that you might have reason to differentiate between them might be to display a small notice such as "Game #182"
y=zeros(1,36)
if isequal(x,one)
y(1)=1;
y(2)=1;
......
But whenever i run the code, all the elements of y stay zero, nothing becomes 1. How can i fix it.
I would say... don't do that.
one=readmtarix();
two=readmatrix();
three=readmatrix();
A = {one two three};
x = randi(length(A));
board_configuration = A{x};
if x == 1
...
elseif x == 2
...
end

Sign in to comment.

More Answers (0)

Categories

Find more on Software Development Tools in Help Center and File Exchange

Products

Release

R2021b

Tags

Community Treasure Hunt

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

Start Hunting!