将值分配给矩阵,右侧是索引的函数

时间:2014-02-24 22:18:07

标签: matlab vectorization

我正在尝试使用MATLAB矢量化将多个值同时分配给矩阵。在我的代码中,我目前有类似的东西:

y(1,:) = G(x(1:2,:))
y(2,:) = G(x(3:4,:))
and so on..

G是一个函数,它将输入参数行的关系运算符作为操作数。

function g = G(x)
g = x(1,:) | x(2,:)

有没有办法将函数G应用到整个x-array而不使用for-loop?

感谢。

1 个答案:

答案 0 :(得分:2)

对于这种类型的功能,它确实是可能的。定义您的函数,使其同时适用于所有行:

G = @(x) x(1:2:end,:) | x(2:2:end,:)

然后:

y = G(x);

示例:让

x =
     1     1     0     1     0
     0     0     0     0     0
     1     1     0     0     0
     1     0     1     0     1
     1     1     1     1     1
     1     0     0     1     1

然后y = G(x)给出了

y =
     1     1     0     1     0
     1     1     1     0     1
     1     1     1     1     1