我正在尝试使用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?
感谢。
答案 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