Pick a random column according to specific class data

3 views (last 30 days)
I have matrix lets say
1 1 2 2 3 3 4 4
5 8 3 7 2 8 3 9
4 6 8 2 3 4 6 7
2 3 6 7 3 4 6 8
I want to randomly pick columns from each first row class [1 2 3 4]

Answers (1)

Image Analyst
Image Analyst on 25 Mar 2023
Try randi
A = [...
1 1 2 2 3 3 4 4
5 8 3 7 2 8 3 9
4 6 8 2 3 4 6 7
2 3 6 7 3 4 6 8];
[rows, columns] = size(A);
% Get random column indexes
randomColumns = randi(columns, rows, 1)
randomColumns = 4×1
2 1 5 7
% Get values of A there
randomValues = zeros(rows, 1);
for row = 1 : rows
randomValues(row) = A(row, randomColumns(row));
end
randomValues
randomValues = 4×1
1 5 3 6
  2 Comments
Yousif Alaraji
Yousif Alaraji on 26 Mar 2023
Edited: Yousif Alaraji on 26 Mar 2023
Many thanks,
but can I get one column from each specified Number
1 1 2 2 3 3 4 4
I have these classified columns and I just want random
1 2 3 4
Image Analyst
Image Analyst on 27 Mar 2023
Not sure what you're asking. I thought I answered it but maybe you want unique.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!