【发布时间】:2014-08-05 16:25:00
【问题描述】:
我在 GUI 中有相当数量的编辑框。他们中的大多数必须接受一个实数。如果输入不是单个实数,我想返回 errordlg。
在获取编辑框的字符串时,我一直在使用str2num 和一些额外的检查,例如isreal。示例如下:
total_units_buffer = str2num(get(handles_gui.edit_totalunits,'string'));
% Check if input is number and real
if (~isempty(total_units_buffer) && isreal(total_units_buffer))
% Do stuff
end
通常,当输入不是数字时,输出是[],所以我也一直使用isempty 作为测试。但是,我最近发现,如果输入中有i,例如10i,它会将数字读取为虚数,而不是返回[]。我最近还发现,如果您在输入中添加一个空格,例如10 10,那么str2num 会将其读取为两个数字,这打破了我现在的逻辑。此外,NaN 也将被读取为数字。
基本上,我不断发现这些小事,需要我更新我对单个实数的测试。
所以我想知道,在 Matlab 中是否有一个本地函数来测试字符串是否是单个实数?或者,反过来说,有没有一个有保证的逻辑,绝对保证这个数字是一个实数?
【问题讨论】:
标签: matlab