190314-Matlab热编码及标签转换

版权声明:本文为博主原创文章,转载请注明出处。 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

猜你喜欢

转载自blog.csdn.net/qq_33039859/article/details/88546694
今日推荐