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 日

3 投票

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 日

1 投票

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 日

0 投票

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

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

カテゴリ

ヘルプ センター および File Exchange で Startup and Shutdown についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by