Vector Matlab Converter em matriz binária [duplicado]

Esta pergunta já tem uma resposta aqui:

Crie uma matriz 2D preenchida com zero com as em posições indexadas por um vetor 4 respostas

Eu tenho um vetor v de tamanho (m, 1) cujos elementos são números inteiros selecionados de 1: n. Eu quero criar uma matriz M de tamanho (m, n) cujos elementos M (i, j) sejam 1 se v (i) = j e 0, caso contrário. Eu não quero usar loops e gostaria de implementar isso como uma simples manipulação de matriz de vetores.

Então pensei primeiro em criar uma matriz com elementos repetidos

 M = v * ones(1,n) % this is a (m,n) matrix of repeated v

Por exemplo v = [1,1,3,2] 'm = 4 en = 3

M =
     1     1     1
     1     1     1
     3     3     3
     2     2     2

então eu preciso criar um vetor de comparação c de tamanho (1, n)

c = 1:n
1 2 3

Então eu preciso realizar uma série de comparações lógicas

M(1,:)==c % this results in [1,0,0]
.
M(4,:)==c % this results in [0,1,0]

No entanto, achei que deveria ser possível executar as últimas etapas de cada linha em notação matricial compacta, mas estou perplexo e não tenho conhecimento suficiente sobre indexação. O resultado final deve ser

M =
     1     0     0
     1     0     0
     0     0     1
     0     1     0

questionAnswers(3)

yourAnswerToTheQuestion