Matrix Manipulation code help

1 vue (au cours des 30 derniers jours)
Jab
Jab le 24 Fév 2016
Modifié(e) : Stephen23 le 24 Fév 2016
I have a training label for 3 different classes in a matrix of size 1*178 example t=[1 1 1 3 1 2 3 1 ... .....]. Anyone please help me to write an efficient code for generating a new matrix of size 3*178 where based on the value in "t", the corresponding location in columns should be 1.
for the above example. the output will be like the following matrix:
[1 1 1 0 1 0 0 1.... 0 0 0 0 0 1 0 0..... 0 0 0 1 0 0 1 0.....]

Réponse acceptée

Walter Roberson
Walter Roberson le 24 Fév 2016
[t(:) == 1, t(:) == 2, t(:) == 3]

Plus de réponses (1)

Stephen23
Stephen23 le 24 Fév 2016
Modifié(e) : Stephen23 le 24 Fév 2016
For a simple generalized solution use bsxfun:
>> t = [1 1 1 3 1 2 3 1]
>> bsxfun(@eq,(1:3).',t)
ans =
1 1 1 0 1 0 0 1
0 0 0 0 0 1 0 0
0 0 0 1 0 0 1 0

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by