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

1 vue (au cours des 30 derniers jours)
Safia
Safia le 6 Sep 2022
Commenté : Safia le 6 Sep 2022
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 commentaires
dpb
dpb le 6 Sep 2022
How did you invent the required result from the input?
Safia
Safia le 6 Sep 2022
I haven't got it yet, I just want the result in this form.

Connectez-vous pour commenter.

Réponse acceptée

Dyuman Joshi
Dyuman Joshi le 6 Sep 2022
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

Plus de réponses (0)

Catégories

En savoir plus sur Elementary Math dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by