How to transform a vector into a binary matrix with row constraint ?

1 回表示 (過去 30 日間)
Safia
Safia 2022 年 9 月 6 日
コメント済み: Safia 2022 年 9 月 6 日
Hi!
i have this vector v=[1,4,3,2], I want to transform it into a binary matrix under the following constraint: each row can contain only one '1'.
this is the required result
V=[1 0 0 0
0 1 0 0
0 1 0 0
0 1 0 0
0 1 0 0
0 0 1 0
0 0 1 0
0 0 1 0
0 0 0 1
0 0 0 1]
can anyone help me?
  2 件のコメント
dpb
dpb 2022 年 9 月 6 日
How did you invent the required result from the input?
Safia
Safia 2022 年 9 月 6 日
I haven't got it yet, I just want the result in this form.

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

採用された回答

Dyuman Joshi
Dyuman Joshi 2022 年 9 月 6 日
From the apparent relation between v and the required matrix -
v=[1,4,3,2];
y=zeros(sum(v),numel(v));
z=1;
for i=1:numel(v)
y(z:v(i)+z-1,i)=1;
z=z+v(i);
end
y
y = 10×4
1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1

その他の回答 (0 件)

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by