如何在 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;
这是假设 f
与 y
大小相同。
我需要在 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;
这是假设 f
与 y
大小相同。