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.

 採用された回答

Geoff Hayes
Geoff Hayes 2022 年 1 月 7 日

1 投票

@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 件のコメント

Tariq Hammoudeh
Tariq Hammoudeh 2022 年 1 月 7 日
編集済み: Tariq Hammoudeh 2022 年 1 月 7 日
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.
Walter Roberson
Walter Roberson 2022 年 1 月 7 日
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.
Tariq Hammoudeh
Tariq Hammoudeh 2022 年 1 月 7 日
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 []
Walter Roberson
Walter Roberson 2022 年 1 月 7 日
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"
Tariq Hammoudeh
Tariq Hammoudeh 2022 年 1 月 7 日
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.
Walter Roberson
Walter Roberson 2022 年 1 月 7 日
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

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeSoftware Development Tools についてさらに検索

製品

リリース

R2021b

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by