matlab - MATLAB 中的二进制数组

标签 matlab vector binary

如果我有一个由 20 个数字组成的初始数组 A,顺序为 1 到 20,

 A = [1,2,3,4,5,...,20]

还有另一个随机数组B:

  B = [1, 15, 3, 20, 7]

并且想要输出一个列向量C的形式

  C = [1 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1]

请注意,C 在 B 具有值的索引处具有 1。

我尝试了以下方法:

n=20;
C = zeros(n, 1);
for i=1:length(B)
   C(B(i))=1;
end

最佳答案

在一行中:

full(sparse(B,1,1,max(B),1))

你也可以删除 full函数,大多数matlab矩阵运算都可以处理稀疏矩阵。但这当然取决于您实际想做什么。

关于matlab - MATLAB 中的二进制数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991577/

相关文章:

c - C 中所有固定长度的二进制排列

python - kitti 数据集中的训练标签

r - 如何在 capscale 函数中仅输入环境变量作为因子(而不是连续变量)?

c++ - 如何使用 chrono 确定运行时间

tcp - 在 erlang 中使用 tcp 发送原始二进制文件

十六进制转二进制

matlab - 如何在 MATLAB 中实现普查变换

matlab - 了解补丁行为

python - python 是否有 Matlab 的 `ans` 变量捕获未存储在任何变量中的返回值?

c++ - 运行失败无任何异常