matlab - 检查边界内的值
问题描述
我正在尝试创建一个函数来验证一个值是否在选定的边界内,如果不是,用户必须重试直到验证。
我想知道为什么我的代码会跳过任何给定值的 if 条件并返回输入提示:“错误:无效的表达式。检查是否缺少乘法运算符、缺少或不平衡的分隔符或其他语法错误。”
A=limit(5pi/6,-pi/2,pi/2)
例如直接跳转到 else 条件,而if 条件为真
这是我的代码:
function alpha = limit(pos,min,max)
if (pos >= max) && (pos <= min)
alpha=pos;
else
while pos >= max || pos <= min
prompt = 'Enter value between max and min';
alpha = input(prompt);
end
end
end
解决方案
该函数首先检查 是否pos
同时大于或等于max
和小于或等于min
。
我希望您打算max
大于min
. 因此,该if
行应该是:
if (pos <= max) && (pos >= min)
我假设您的val_max
/val_min
是拼写错误(应该是max
/ min
)然后,您的while
循环取决于pos
. 但是pos
永远不会在循环中更新,因此您的循环将永远迭代。
您需要在循环pos
内部进行更新才能使其正常工作。while
尝试这样的事情:
function alpha = limit(pos,min,max)
while pos > max || pos < min
prompt = 'Enter value between min and max';
pos = input(prompt);
end
alpha = pos;
end
推荐阅读
- arrays - 如何从另一个数组中获取具有批准 ID 的项目?地图()过滤器()还是?
- node.js - 等到 for 循环没有在节点 js 中完全执行
- google-apps-script - Google Apps 脚本 | 如何访问特定范围的行/列数据
- android - 如何比较 Android Studio 中的两个 Git 分支?
- typescript - Cloud Function 部署成功,但代码未得到反映。获取之前执行的日志
- svg - 如何使用radialGradient在svg背景中添加图像
- angular - 不分派多个动作
- javascript - 函数需要支持 Promises 和 Callbacks
- mongodb - 仅从 mongodb 集合中的嵌入式数组对象中获取特定字段
- c# - 使用 C# 在 Artemis 上发送队列消息