在matlab中如何判断通过gui获取的字符串是否为二进制字符串?

how to check whether the string taken through gui is a binary string in matlab?

我正在做一个在图像中嵌入二进制值(即 1 和 0)的水印项目,为此我必须从用户那里获取输入,并检查某些条件,例如
1) 没有空字符串
2) 没有其他字符或特殊字符
3) 除了 0 和 1
已输入。

下面的代码只是检查第一个条件。 Matlab中是否有任何默认函数来检查输入的字符串是否为二进制

int_state = get(handles.edit1,'String'); %edit1 is the Tag of edit box
if isempty(int_state)`
    fprintf('Error: Enter Text first\n');
else
    %computation code
end

我觉得2号和3号可以合并为1个条件:你输入的字符串只能是0和1的组合?如果是这样,那么 findstr 的一个小技巧就可以做到这一点:

if length(findstr(input_str, '1')) + length(findstr(input_str, '0')) == length(input_str)
    condition_satisfied;
end

tf = isnumeric(A) returns 如果 A 是数值数组则为真,否则为假。

数值数组是任何数值类型和这些类型的任何子类。

是数字(A) 答案 = 1(当 A 为数字时)。

没有这样的标准功能,但可以很容易地实现检查。 使用此错误条件:

isempty(int_state) || any(~ismember(int_state, '01'))

如果字符串非空且仅由“0”和“1”组成,则为 returns false(无错误)。

函数 ismember returns 一个布尔数组,指示 int_state 中的每个字符是否包含在第二个参数 '01' 中。优点是这可以推广到任意一组允许的字符。