How to convert row to matrix with below format????

5 vues (au cours des 30 derniers jours)
Yuvaraj Venkataswamy
Yuvaraj Venkataswamy le 6 Juin 2018
I need to convert row to matrix. For example, A=[1 2 3 4 5]
Need answer like this, Ans=[1 0 0 0 0; 0 1 0 0 0; 0 0 1 0 0; 0 0 0 1 0; 0 0 0 0 1]
  7 commentaires
Stephen23
Stephen23 le 6 Juin 2018
@Yuvaraj V: I have updated my answer to match your comment.
Yuvaraj Venkataswamy
Yuvaraj Venkataswamy le 6 Juin 2018
@Stephen Cobeldick: Thank You so much

Connectez-vous pour commenter.

Réponse acceptée

Stephen23
Stephen23 le 6 Juin 2018
Modifié(e) : Stephen23 le 6 Juin 2018
>> A = [3,1,1,4];
>> N = numel(A);
>> Z = zeros(N);
>> Z(sub2ind([N,N],1:N,A)) = 1
Z =
0 0 1 0
1 0 0 0
1 0 0 0
0 0 0 1
EDIT: if my example is acceptable, as you now write, then you will need something like this:
>> A = [5,1,1,4];
>> R = numel(A);
>> C = max(A);
>> Z = zeros(R,C);
>> Z(sub2ind([R,C],1:R,A)) = 1
Z =
0 0 0 0 1
1 0 0 0 0
1 0 0 0 0
0 0 0 1 0
  1 commentaire
Yuvaraj Venkataswamy
Yuvaraj Venkataswamy le 6 Juin 2018
@Stephen Cobeldick: Thank You so much

Connectez-vous pour commenter.

Plus de réponses (1)

Birdman
Birdman le 6 Juin 2018
Modifié(e) : Birdman le 6 Juin 2018
Something like this should work:
A=[3 1 1 4];
Ans=zeros(max(size(A)));
r=1:max(size(A));
c=A;
idx=sub2ind(size(repmat(A,max(size(A)),1)),r,c);
Ans(idx)=1
  2 commentaires
Stephen23
Stephen23 le 6 Juin 2018
Modifié(e) : Stephen23 le 6 Juin 2018
@Birdman: there is a syntax error on this line:
Ans=zeros(max(size(A));
Birdman
Birdman le 6 Juin 2018
Modifié(e) : Birdman le 6 Juin 2018
Yes there should be one more parenthesis. Thanks.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Performance and Memory dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by