行上的八度映射

时间:2014-10-05 16:40:13

标签: matrix mapping row octave vectorization

我的矩阵是m x 2:

.2 .8
.3 .7
.7 .3

...

我想映射'>'操作到每一行,导致列如下:

0
0
1

...

但是,我似乎无法找到一个好方法,除非删除列并将自定义函数应用于矩阵,如

res = arrayfun(@mapfunction, matrix(:,1))

function cl = mapfunction(v)
    cl = v > .5

有更简单的方法吗?

1 个答案:

答案 0 :(得分:3)

您可以简单地计算一个布尔/ logical列,检查矩阵中每一行的第一列是否大于第二列:

res = matrix(:,1) > matrix(:,2);

给出你的示例矩阵:

matrix = [.2 .8; .3 .7; .7 .3];

这就是我得到的:

>> res = matrix(:,1) > matrix(:,2)

res =

     0
     0
     1