Stu*_*tud 3 arrays indexing matlab
我想将整数转换为i具有第i个非零元素的逻辑向量.这可以完成1:10 == 2,返回
0 1 0 0 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
现在,我想为每一行向量化这个过程.写作repmat(1:10, 2, 1) == [2 5]'我希望得到
0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
但相反,会发生此错误:
使用==
矩阵尺寸时出错必须同意.
我可以矢量化这个过程,还是for循环唯一的选择?
你可以使用bsxfun:
>> bsxfun(@eq, 1:10, [2 5].')
ans =
0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
注意.'第二个向量上的转置; 这一点很重要.
| 归档时间: |
|
| 查看次数: |
540 次 |
| 最近记录: |