如何在 matlab 中指定范围并相应地执行功能?

How to specify a range and perform a function accordingly in matlab?

我需要在 matlab 中执行以下功能。

我试过下面的代码,但不知何故我的 if 语句是错误的。我想知道如何在这里有效地使用 if 语句。如果有任何其他方法可以执行该功能,请提供帮助。我的代码如下

if (y(i,j) < -0.5, y(i,j) >= -1)
    f(i,j) = 0
elseif (y(i,j) < 0, y(i,j) >= -0.5)
    f(i,j) = 1
elseif (y(i,j) < 0.75, y(i,j) >= 0)
    f(i,j) = 2
elseif (y(i,j) < 1, y(i,j) >= 0.75)
    f(i,j) = 3
end

这里 y(i,j) 是一个 1 x 256 矩阵。谢谢

您需要使用逻辑 AND 运算符将两个布尔表达式连接在一起。您使用的逗号不正确:

if (y(i,j) < -0.5 && y(i,j) >= -1)
    f(i,j) = 0
elseif (y(i,j) < 0 && y(i,j) >= -0.5)
    f(i,j) = 1
elseif (y(i,j) < 0.75 && y(i,j) >= 0)
    f(i,j) = 2
elseif (y(i,j) < 1 && y(i,j) >= 0.75)
    f(i,j) = 3
end

但是,您似乎在 for 循环中使用它,我不会在循环中执行上述操作。改为使用逻辑索引:

f(y < -0.5 & y >= 1) = 0;
f(y < 0 & y >= -0.5) = 1;
f(y < 0.75 & y >= 0) = 2;
f(y < 1 & y >= 0.75) = 3;

这是假设 fy 大小相同。