将列矩阵转换为逻辑数组

Str*_*rew 2 matlab octave

我有一个mx 1大小的矩阵Y,整数范围从1到10.我想用逻辑Y(i)== 1:10创建一个大小为mx 10的逻辑数组.而且我不想使用for循环.

我所做的是定义一个函数

f = @(y) (y == 1:10)'.
Run Code Online (Sandbox Code Playgroud)

然后我打电话arrayfun(f,y,'UniformOutput',false)给我一个正确输出的单元格.然后我将细胞转换成矩阵cell2mat.

这感觉有点做作,所以我的问题是:有更简单的方法吗?

Moh*_*nia 5

我认为你在寻找的是

bsxfun(@eq, y, 1:10)
Run Code Online (Sandbox Code Playgroud)