首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从标签向量生成标签矩阵?

问如何从标签向量生成标签矩阵?
EN

Stack Overflow用户
提问于 2014-12-08 08:28:31
回答 1查看 606关注 0票数 0

我有一个标签向量如下:

代码语言:javascript
复制
   y=[3 1 5 3 4 2];

是否有任何有效的方法来生成以下标签矩阵?

代码语言:javascript
复制
    [0 0 1 0 0;
     1 0 0 0 0;
     0 0 0 0 1;
     0 0 1 0 0;
     0 0 0 1 0;
     0 1 0 0 0;]

更新: This post和this post都是很好的答案。使用@Nras提供的脚本,可以处理缺少的标签:

代码语言:javascript
复制
    Y=[3 1 5 3 4 2];
    labels=unique(Y);
    [~,indexes]=ismember(Y,labels);
    rows = 1:length(Y); %// row indx
    T = zeros(length(Y),length(unique(indexes))); %// A matrix full of zeros
    T(sub2ind(size(T),rows ,indexes)) = 1; %// Ones at the desired row/column combinations
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-08 08:35:31

对于此问题,请使用sub2ind。您的y确定要使用的列,行总是增加1。通过使用sub2ind,所需的行列组合被转换为线性索引,然后所有行都可以以向量化的方式嵌入。

代码语言:javascript
复制
y = [3 1 5 3 4 2]; %// column indx
rows = 1:length(y); %// row indx

M = zeros(length(y), max(y)); %// A matrix full of zeros
M(sub2ind(size(M),rows ,y)) = 1; %// Ones at the desired row/column combinations
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27354044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档