背景:编程过程中,经常需要将输入转换成数字型,转换前必须对输入进行判断。输入可能为空,字符型,数字型,字符型有肯能无法转换成数字。针对以上情况,编制一个子程序进行判断,输出结果。
1、子程序 input2num
function [output, error_code] = input2num(input)
% 程序功能: 对输入进行判断,给出对应的错误代码,如果没有错误,则输出对应的数字型结果
% output: 程序输出,double类型
% error_code: 输入数据错误代码, =1 代表没有输入(NaN); =2 代表字符型输入,但无法转成数字;=0, 输入无错误
% input: 可能的输入包括: NaN, char, double
output = [];
error_code = 0;
if isnan(input) % 检测是否有输入
error_code = 1;
elseif ischar(input)
if isempty(str2num(input)) % 如果输入的字符转换后不是数字
error_code = 2;
else
output = str2num(input); % 如果输入的是字符且可以转换为数字
end
else % 如果输入是数字型
output = input;
end
2、子程序应用
程序应用案例: 对TEUD布宽度输入进行转换,如果不小心输成‘23o’,报错见图片所示。
[output, error_code] = input2num(TEUD_all{3,4*i-2});
if error_code == 1 % 没有输入
errorstring = sprintf('No input for UD tape width detected for %dth TEUD',i);