フィルターのクリア

how can i fill matrix using a vector?

4 ビュー (過去 30 日間)
Mira le
Mira le 2019 年 11 月 14 日
回答済み: JESUS DAVID ARIZA ROYETH 2019 年 11 月 14 日
my vector v1=[1 4 8 9 3 6 ]
my matrix pop with size N*m
N=10:
m=4;
I want to fill randomly matrix pop with v1 and 0 like this:
pop = 1 4 0 6
3 0 0 8
1 6 3 0
.
.please help me

採用された回答

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH 2019 年 11 月 14 日
solution:
v1=[1 4 8 9 3 6 ];
v2=[v1 zeros(1,4)];% change the amount of 0 to increase the probability in this case there are 4
pop=v2(randi(numel(v2),10,4))
  1 件のコメント
Mira le
Mira le 2019 年 11 月 14 日
It works, thank you, but there is a duplicate values in pop, how do we remove it an replace it by 0?
Example:
pop = 6 0 1 1 4 become 6 0 1 0 4

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

その他の回答 (1 件)

JESUS DAVID ARIZA ROYETH
JESUS DAVID ARIZA ROYETH 2019 年 11 月 14 日
without repetition :
v1=[1 4 8 9 3 6 ];
v2=[v1 zeros(1,4)];% change the amount of 0 to increase the probability in this case there are 4
[~, ind] = sort(rand(10,length(v2)),2);
pop=v2(ind(:,1:4))

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by