Matrix Manipulation code help

2 ビュー (過去 30 日間)
Jab
Jab 2016 年 2 月 24 日
編集済み: Stephen23 2016 年 2 月 24 日
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.....]

採用された回答

Walter Roberson
Walter Roberson 2016 年 2 月 24 日
[t(:) == 1, t(:) == 2, t(:) == 3]

その他の回答 (1 件)

Stephen23
Stephen23 2016 年 2 月 24 日
編集済み: Stephen23 2016 年 2 月 24 日
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

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by