在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'
中。优点是这可以推广到任意一组允许的字符。
我正在做一个在图像中嵌入二进制值(即 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'
中。优点是这可以推广到任意一组允许的字符。