如何运行该函数后再一个错误呢?

6视图(30天)
我有一个函数,输入时间限制(T_limit)和身体的程序的一些独立的时间(T_7)计算。我写比较这两个时间我会提取,如果T_limit > T_7,功能正常执行,但如果T_7 > T_limit,抛出错误信息,要求用户输入一个新的时间(T_limit)和执行功能与这个值。我的问题是,我的代码stuct在一个无限循环。有办法执行函数再次与这个新变量(T_limit) ?
函数[运动]= motionPlanning (j_max、a_max v_max,长度,T_limit)
%……
% % % FC2违反
如果(T7 < T_limit) | | (T_limit = = 0)
disp (“# # # MP - FC2 +时间不是违反(DSP) # # #”);
运动。mp_feasibility {1} = [“时间违反”,真正的];
其他的
运动。mp_feasibility {1} = [“时间违反”假);
试一试
错误(“# # # MP - FC2 +时间已经违反了(DSP) # # #”);
disp (“# # # MP - FC2 +进入新的时间限制(DSP) # # #”);
流(“新期限:% d”,T_limit);
[运动]= motionPlanning (2 0 0200, T_limit);
结束
结束
2的评论
易卜拉欣一
易卜拉欣一 2021年5月16日
编辑:易卜拉欣一 2021年5月16日
这是主函数不是在另一个函数。如果我让另一个函数,调用motionPlanning在这个函数。这会消除递归呢?

登录置评。

接受的答案

Aditya帕蒂尔
Aditya帕蒂尔 2021年5月19日
我建议分离的逻辑功能和从用户输入的代码。两个可能的方法是,
  1. 函数可以验证输入和抛出的错误如果他们是无效的。外部while循环要求来自用户的输入,调用函数和重复如果函数将抛出一个错误。别的,while循环的存在。
  2. 外循环验证输入和调用函数只有在输入是有效的。,它要求从用户再次输入。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!