フィルターのクリア

Matrix Manipulation code help

1 回表示 (過去 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

製品

Community Treasure Hunt

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

Start Hunting!

Translated by