我有一个matlab脚本,其中一个变量是:
a = 'false' % my string
我的目标是将这样的变量转换为布尔变量:
a = false % my goal
是否有matlab函数允许我将字符串转换为布尔值?
a = string2boolean('false') % I would like to have something like this
如果没有允许这样做的功能可能是另一种可能的解决方案吗?
答案 0 :(得分:2)
你可以滥用strcmpi
,即
a = strcmpi(a, 'true');
这是一个不区分大小写的字符串比较,因此true
,True
和TRUE
都转换为逻辑true。所有其他字符串将自动转换为false。
答案 1 :(得分:2)
你可以自己写一个,这很简单
function [output]=string2boolean(string)
if strcmp(string,'false')
output = false;
else
output = true;
end
end
此外,您可以完全跳过该功能,只需
a = strcmp(a,'true');
答案 2 :(得分:1)
str2num
有效(已通过Matlab R2018a测试)
str2num( '1' ) %yields double(1)
str2num( '0' ) %yields double(0)
str2num( 'true' ) %yields logical(1)
str2num( 'false' ) %yields logical(0)
答案 3 :(得分:0)
您可以按如下方式定义方法/功能:
function boolValue = string2boolean(stringValue)
boolValue = ''
if strcmpi(string,'false')
boolValue = false
end
if strcmpi(string,'true')
boolValue = true
end
答案 4 :(得分:0)