MATLAB Answers

Generate 10 numbers from matrix

21 views (last 30 days)
Ashante Isabella Bon
Ashante Isabella Bon on 23 Sep 2021 at 20:21
Commented: Ashante Isabella Bon on 27 Sep 2021 at 14:17
Say I have a matrix, v1, how would I be able to randomly generate 10 numbers within the existing matrix?
  2 Comments
Ashante Isabella Bon
Ashante Isabella Bon on 27 Sep 2021 at 14:17
Yes to first question, all different positions, Just 10 numbers no need to be a vector

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 23 Sep 2021 at 20:58
To generate the numbers from random locations, without repeating any of the locations you need to use randperm(), not randi() like other answer(s). Using randi() will potentially allow the same location to be used multiple times. So use randperm() or randi() depending on what you want.
% Generate sample matrix -- a 7 row-by-9 column matrix.
m = randi(100, 7, 9)
% Get 10 random linear indexes with no location being a repeat:
randomIndexes = randperm(numel(m), 10)
% Extract data at those random locations:
extractedNumbers = m(randomIndexes)

More Answers (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov on 23 Sep 2021 at 20:40
Based on what you've stated the following could be what you want to obtain:
v1 = randi(10, 5, 5) %#ok % Is existing matrix
v1 = 5×5
2 5 2 1 10 7 5 3 1 6 10 4 4 1 9 2 6 5 3 1 8 5 2 10 2
IDX = randi([1, 10], 1, 10); % Randomly select indexes from the existing matrix
R = v1(IDX) % Randomly selected 10 numbers from v1
R = 1×10
4 5 5 10 8 5 8 5 2 8

Community Treasure Hunt

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

Start Hunting!

Translated by