How to generate 500 permutations of any vector length 20? I am getting error

1 回表示 (過去 30 日間)
Triveni
Triveni 2016 年 3 月 3 日
コメント済み: Jos (10584) 2016 年 3 月 4 日
y = [45 45 45 45 45 45 0 0 30 30 0 0 0 0 45 45 45 45 45 45];
[count,element] = hist(y,unique(y));
N1 = 5000;
x1 = permute(randi(numel(y), [1 20 N1]),[3 2 1]);
y = y(x1);
out = y(sum([ones(size(y,1),1),diff(sort(y,2),[],2)~=0],2) >= 3,:);
I am getting wrong result...I want to present 2 numbers of 30, 6 numbers of 0 and 12 numbers of 45...in every row..

採用された回答

Jos (10584)
Jos (10584) 2016 年 3 月 3 日
To generate one permutation of y you can use randperm
Y = [45 45 45 45 45 45 0 0 30 30 0 0 0 0 45 45 45 45 45 45];
R = randperm(numel(Y)) % indices into y in random order
Y_permuted = Y(R)
To generate multiple rows of indices
N = 10 ;
[~, R] = sort(rand(N,numel(Y)),2)
Y_permuted = Y(R)
  2 件のコメント
Triveni
Triveni 2016 年 3 月 3 日
編集済み: Triveni 2016 年 3 月 4 日
I have to generate atleast 500 permutations....can i call Y_permuted for 50 times and store generated value??
Jos (10584)
Jos (10584) 2016 年 3 月 4 日
No, change N. Each row of Y_permuted will hold a specific permutation.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeWaveform Generation についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by