Making a matrix of R*C size that takes the values randomly from an array- Y.

5 ビュー (過去 30 日間)
MAzharul Islam
MAzharul Islam 2021 年 8 月 18 日
コメント済み: MAzharul Islam 2021 年 8 月 18 日
I want to make a random matrix of R*C size that takes the values randomly from an array Y.
For example I want to make a 7*8 matrix that takes value from this array Y = [ 1 6 1 8 4 5], and place them randomly in the matrix.. I have tried randi command to do this, but randi doesn't take fixed values like I have stated above.

採用された回答

Wan Ji
Wan Ji 2021 年 8 月 18 日
Hi, friend! randi is OK, it can help, look
Y = [ 1 6 1 8 4 5];
R = 7; C = 8;
indices = randi([1,numel(Y)], R, C);
A = Y(indices)
The result is
A =
8 1 5 4 4 4 1 1
1 1 8 1 1 5 6 1
5 1 1 1 6 1 1 1
8 1 8 5 1 1 4 5
5 1 8 8 1 1 8 8
5 8 1 8 8 6 6 1
1 1 5 1 4 4 8 4
Wish you will like it
  1 件のコメント
Wan Ji
Wan Ji 2021 年 8 月 18 日
Here, because 1 appears in Y array twice, its appearance possibility in matrix A is twice as much as other numbers( 6,8,4 and 5).

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

その他の回答 (1 件)

Yazan
Yazan 2021 年 8 月 18 日
i1 = 7; i2 = 8;
y = [1 6 1 8 4 5];
randIdx = randi(length(y), 1, i1*i2);
data = reshape(y(randIdx), i1, i2)
data = 7×8
6 4 5 6 5 1 1 4 1 4 1 1 1 1 1 1 1 1 1 1 8 1 6 1 6 4 5 6 1 6 6 8 4 5 8 1 6 4 8 8 1 8 4 8 4 5 8 1 6 6 8 1 4 6 5 1
  1 件のコメント
MAzharul Islam
MAzharul Islam 2021 年 8 月 18 日
Thanks. I wish I could accept both of Your answers, but..... I can't. Matlab doesn't allow it

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

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品


リリース

R2012a

Community Treasure Hunt

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

Start Hunting!

Translated by