变量y可以取一个在定义范围内的值:
3<y<5
应该确定y的值,引入像
这样的约束|x-y|=min
给出x并应扫描更大的范围,如:
x:=-1000:1:1000
如何找到给定x的确切y值?
我考虑的结果如下:
x y
-1000 3
. 3
. 3
2.9 3
3 3
3.1 3.1
4 4
5 5
6 5
7 5
. 5
. 5
1000 5
这意味着我想允许更大的“错误”但是在3到5之间它应该以非常小的错误解决,以便我可以尽可能好地解决这个区域。
在Matlab中实现类似这样的东西的最佳方法是什么?没有“IF”条件,如果可能的话,象征性地。但是数字替代方案也很有意思。
答案 0 :(得分:3)
根据您的评论和示例,我认为您只是在寻找:
x = -10:0.1:10 %Suppose this is your x
y = max(min(x,5),3) %Force it between 3 and 5 by rounding up or down respectively