如果提示的答案是错误的格式或空,停止代码

6视图(30天)
嗨。我有一个提示,问五个问题。由于任何原因,如果用户输入一个空的答案或不正确的格式,代码应该停止并返回一个错误对话框弹出。我已经尝试了一些东西,但他们只工作如果所有的答案提示是空的,但我需要它,如果任何为空或不正确的格式,弹出的错误并停止代码。任何想法吗?下面是代码的一部分。
prompt_full = {“开始,结束时间(小时):“,“初始压力(psi):”,的初始浓度(十进制):,的氧气泄漏率(磅/小时):“,“#的节点:};
dlog_title =用户输入的;
num_lines = 1;
default_answer = {“[0,12]”,“13.9”,“0.241”,“.000211”,“20”};
回答= inputdlg (prompt_full、dlog_title num_lines default_answer);
如果cellfun (@isempty回答)
对话框(“错误”)
返回
结束
%如果isempty(回答),返回,结束;%取消如果空
值= str2double(回答);
如果isnan(值)%,他们进入了一个错误的输入或点击取消
对话框(“输入不足。请再试一次。”);
返回
结束

答案(2)

图像分析
图像分析 2017年7月17日
试试这个片段。根据需要调整。
%问用户两个浮点数。
defaultValue = {“45.67”,“78.91”};
titleBar =输入一个值的;
userPrompt = {“输入浮点数1:”,“输入浮点数2:”};
caUserInput = inputdlg (userPrompt titleBar 1, defaultValue);
如果isempty (caUserInput),返回,结束;如果他们点击取消%纾困。
%从字符串转换为浮点数。
usersValue1 = str2double (caUserInput {1})
usersValue2 = str2double (caUserInput {2})
% usersValue1检查有效性。
如果isnan (usersValue1)
%他们没有输入一个数字。
%他们点击取消,或输入一个字符,符号,或别的东西不允许的。
%将默认从一个字符串,插到usersValue1。
usersValue1 = str2double (defaultValue {1});
消息= sprintf (”我说必须是一个数字。\ nTry替换用户。倪\将使用%。2f and continue.',usersValue1);
uiwait (warndlg(消息));
结束
%为usersValue2做同样的事情
% usersValue2检查有效性。
如果isnan (usersValue2)
%他们没有输入一个数字。
%他们点击取消,或输入一个字符,符号,或别的东西不允许的。
%将默认从一个字符串,插到usersValue2。
usersValue2 = str2double (defaultValue {2});
消息= sprintf (”我说必须是一个数字。\ nTry替换用户。倪\将使用%。2f and continue.',usersValue2);
uiwait (warndlg(消息));
结束
2的评论
图像分析
图像分析 2017年7月18日
用[]组:
startAndEnd = [usersValue1, usersValue2];

登录置评。


德里克杨
德里克杨 2017年7月17日
的问题是:
如果cellfun (@isempty回答)
cellfun这里的输出是一个逻辑5 x1数组。在MATLAB中,如果块只会评估这个逻辑数组的所有元素是真实的(这就是为什么你的代码工作,如果所有的答案在你的提示是空的)。您可以编辑这条线如下:
如果任何(cellfun (@isempty,回答)
文档的 任何
1评论
Areeb侯赛因
Areeb侯赛因 2017年7月18日
感谢德里克!这是非常容易的。你有什么想法关于评论我张贴在图像分析的答案?

登录置评。

社区寻宝

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

开始狩猎!