检查边界内的值

  • 本文关键字:边界 matlab
  • 更新时间 :
  • 英文 :


我正在尝试创建一个函数来验证值是否在选定的边界内,如果不是,用户必须重试直到验证。

我想知道为什么我的代码跳过任何给定值的 if 条件,它会返回我的输入提示:">错误:无效表达式。检查缺少乘法运算符、缺少或不平衡的分隔符或其他语法错误。

例如,A=limit(5pi/6,-pi/2,pi/2)直接跳转到 else 条件,而 if 条件则为true

这是我的代码:


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永远不会在循环中更新,所以你的循环只会永远迭代。

您需要更新while循环中的pos才能正常工作。尝试这样的事情:

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

相关内容

  • 没有找到相关文章