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

2 visualizzazioni (ultimi 30 giorni)
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 Commenti
Stephen23
Stephen23 il 6 Giu 2018
@Yuvaraj V: I have updated my answer to match your comment.
Yuvaraj Venkataswamy
Yuvaraj Venkataswamy il 6 Giu 2018
@Stephen Cobeldick: Thank You so much

Accedi per commentare.

Risposta accettata

Stephen23
Stephen23 il 6 Giu 2018
Modificato: Stephen23 il 6 Giu 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

Più risposte (1)

Birdman
Birdman il 6 Giu 2018
Modificato: Birdman il 6 Giu 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 Commenti
Stephen23
Stephen23 il 6 Giu 2018
Modificato: Stephen23 il 6 Giu 2018
@Birdman: there is a syntax error on this line:
Ans=zeros(max(size(A));
Birdman
Birdman il 6 Giu 2018
Modificato: Birdman il 6 Giu 2018
Yes there should be one more parenthesis. Thanks.

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by