categorical conversion to integer

3 visualizzazioni (ultimi 30 giorni)
tren
tren il 27 Apr 2023
Commentato: Walter Roberson il 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

Risposte (3)

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

Accedi per commentare.


Stephen23
Stephen23 il 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

Prodotti


Release

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by