choose elements from array randomly

132 ビュー (過去 30 日間)
Majid Al-Sirafi
Majid Al-Sirafi 2012 年 9 月 23 日
Hi everyone
I have vector array of elements …
for example a=[1,2,3,4]
how can I choose randomly 10% of the above array????
Help me please
majid

採用された回答

Wayne King
Wayne King 2012 年 9 月 23 日
You must be using an older version of MATLAB, do this instead:
% create vector
a = randn(100,1);
% determine how many elements is ten percent
numelements = round(0.1*length(a));
% get the randomly-selected indices
indices = randperm(length(a));
indices = indices(1:numelements);
% choose the subset of a you want
b = a(indices);
  1 件のコメント
Majid Al-Sirafi
Majid Al-Sirafi 2012 年 9 月 23 日
thank you brother
majid

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

その他の回答 (2 件)

Azzi Abdelmalek
Azzi Abdelmalek 2012 年 9 月 23 日
編集済み: Azzi Abdelmalek 2012 年 9 月 23 日
a=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17]
n=length(a)
nr=round(n/10)
out=a(randperm(n,nr))
or if you have'nt randperm
n=length(a);
nr=round(n/10)
[ ~,idx]=sort(rand(n,1));
out=a(idx(1:nr))
  1 件のコメント
Azzi Abdelmalek
Azzi Abdelmalek 2012 年 9 月 23 日
Depends on how you want to round your percentage use, round or ceil or floor

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


Wayne King
Wayne King 2012 年 9 月 23 日
編集済み: Wayne King 2012 年 9 月 23 日
One thing you can do is:
% create vector
a = randn(100,1);
% determine how many elements is ten percent
numelements = round(0.1*length(a));
% get the randomly-selected indices
indices = randperm(length(a),numelements);
% choose the subset of a you want
b = a(indices);
  2 件のコメント
Majid Al-Sirafi
Majid Al-Sirafi 2012 年 9 月 23 日
thank you dear
but when I run this code the following error had been occured
??? Error using ==> randperm Too many input arguments.
majid
Wayne King
Wayne King 2012 年 9 月 23 日
See my answer below for a use of randperm compatible with earlier versions of MATLAB

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

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by