Pick a random column according to specific class data

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]

回答 (1 件)

Image Analyst
Image Analyst 2023 年 3 月 25 日

1 投票

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

Yousif Alaraji
Yousif Alaraji 2023 年 3 月 26 日
編集済み: Yousif Alaraji 2023 年 3 月 26 日
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 2023 年 3 月 27 日
Not sure what you're asking. I thought I answered it but maybe you want unique.

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

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

質問済み:

2023 年 3 月 25 日

コメント済み:

2023 年 3 月 27 日

Community Treasure Hunt

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

Start Hunting!

Translated by