在 Matlab 中使用指示矩阵创建标签向量
给定一个大小为nx k的二进制矩阵M,我想创建一个大小为nx 1的向量Label这样 Label 的条目应包含 M 的串联列索引,其值为 1,
例如:如果 M矩阵给出为
M = [ 0 0 1 1
0 0 0 1
1 0 0 1
0 0 0 0
1 1 1 0 ]
结果标签向量应该是
V = [ '34'
'4'
'14'
'0'
'123' ]
Given a binary matrix M of size n x k, i would like to create a vector Label of size n x 1 such that entry of Label should contain the concatenated column index of M where its values are 1
for eg: If the M Matrix is given as
M = [ 0 0 1 1
0 0 0 1
1 0 0 1
0 0 0 0
1 1 1 0 ]
The resultant Label Vector should be
V = [ '34'
'4'
'14'
'0'
'123' ]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是一种以矢量化方式紧凑地完成此操作的方法。
Here is one way to do it compactly and in a vectorized manner.
这是使用 FIND 和 ACCUMARRAY 返回 N×1 字符串元胞数组:
Here's a solution using FIND and ACCUMARRAY that returns an N-by-1 cell arrays of strings:
您可以使用 find 函数或循环来构建字符串(替换空完成后数组索引为“0”)。
You can use the find function or loop to build the strings (replacing empty array indices with '0' after finishing).