categorical conversion to integer

I have trained a neural network with two classes (0 and 1)
When i input an image of size 256x256 as:
y=classify(net,input)
the output y is categorica (either 0 or 1)l.
When I type cast it int 8
y=cast(y,'int'8)
I ger wrong values. I need values as it is classified by classifier in categorical form (0 as 0, 1 as 1).
Any suggestion?
Thanks

回答 (3 件)

Star Strider
Star Strider 2023 年 4 月 27 日

1 投票

Perhaps something like this —
y = categorical([0 1])
y = 1×2 categorical array
0 1
y = cellfun(@str2double,categories(y))
y = 2×1
0 1
y = int8(y)
y = 2×1
0 1
.
Walter Roberson
Walter Roberson 2023 年 4 月 27 日
編集済み: Walter Roberson 2023 年 4 月 28 日

1 投票

create an ordinal categorical with valueset 0 and 1. Afterwards you can int8() the labels

1 件のコメント

Walter Roberson
Walter Roberson 2023 年 4 月 28 日
uint8() gives back the class number. If you ordered them then you can work on them mathematically.
y = categorical(randi([0 1], 10, 1), [0 1], ["0", "1"])
y = 10×1 categorical array
1 0 1 0 0 1 1 0 0 0
uint8(y) - 1
ans = 10×1
1 0 1 0 0 1 1 0 0 0

サインインしてコメントする。

Stephen23
Stephen23 2023 年 4 月 27 日

1 投票

M = categorical([0,1;1,0])
M = 2×2 categorical array
0 1 1 0
X = double(M);
Y = int8(str2double(categories(M)));
Z = Y(X)
Z = 2×2
0 1 1 0

カテゴリ

ヘルプ センター および File ExchangeDeep Learning Toolbox についてさらに検索

製品

リリース

R2017b

質問済み:

2023 年 4 月 27 日

コメント済み:

2023 年 4 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by