categorical conversion to integer

5 views (last 30 days)
tren
tren on 27 Apr 2023
Commented: Walter Roberson on 28 Apr 2023
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

Answers (3)

Star Strider
Star Strider on 27 Apr 2023
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 on 27 Apr 2023
Edited: Walter Roberson on 28 Apr 2023
create an ordinal categorical with valueset 0 and 1. Afterwards you can int8() the labels
  1 Comment
Walter Roberson
Walter Roberson on 28 Apr 2023
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

Sign in to comment.


Stephen23
Stephen23 on 27 Apr 2023
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

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Products


Release

R2017b

Community Treasure Hunt

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

Start Hunting!