版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_33039859/article/details/88546694
- 代码
%%
clc;
clear;
% ind2vec
ind = [1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9]; % 标签需要是行向量,不能是列向量,且不能有非正数
n = length(unique(ind));
fprintf('将标签转换成热编码\n')
vec = full(ind2vec(ind,n))' % ind2vec(): 将ind标签转换成vec稀疏编码,再由full()转换成OneHotEncoding
% vec2ind
fprintf('将热编码转换成标签\n')
ind = vec2ind(vec')
- 结果
将标签转换成热编码
vec =
1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0
0 0 0 0 1 0 0 0 0
0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 1
将热编码转换成标签
ind =
1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9