I want to create a row of a matrix which consist of 16 zeros and random replace 4 of the first 8 elements with ones and 2 of the last 8 elements with ones.
i.e A = [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ;]
Then B= [ 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 0 ; ]
The ones should be replaced randomly in their positions as explained before.
Any help could be useful.
Thanks in advance !

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 12 月 13 日

0 投票

A = [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]
B=A
B([randperm(8,4) randperm(8,2)+8])=1

3 件のコメント

Konstantinos
Konstantinos 2014 年 12 月 13 日
Thanks for your help!
Azzi Abdelmalek
Azzi Abdelmalek 2014 年 12 月 13 日
You can write
A=zeros(1,16)
instead of
A = [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ]
Konstantinos
Konstantinos 2014 年 12 月 13 日
Indeed...my problem was that I didn't know the existance of "randperm" command.

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Random Number Generation についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by