如何在Matlab中将字符串变量转换为布尔值?

Fed*_*ile 4 string matlab boolean type-conversion

我有一个 matlab 脚本,其中一个变量是:

a = 'false' % my string
Run Code Online (Sandbox Code Playgroud)

我的目标是将此类变量转换为布尔变量:

a = false % my goal
Run Code Online (Sandbox Code Playgroud)

有没有一个matlab函数可以让我将字符串转换为布尔值?

a = string2boolean('false') % I would like to have something like this
Run Code Online (Sandbox Code Playgroud)

如果没有允许这样做的功能,另一种可能的解决方案是什么?

Ber*_*ard 5

你可以滥用strcmpi这个,即

 a = strcmpi(a, 'true');
Run Code Online (Sandbox Code Playgroud)

这是一个不区分大小写的字符串比较,因此trueTrueTRUE都转换为逻辑 true。所有其他字符串将自动转换为 false。


itz*_*bat 5

你可以自己写一个,比较简单

function [output]=string2boolean(string)
   if strcmp(string,'false')
     output = false;
   else
     output = true;
   end
end
Run Code Online (Sandbox Code Playgroud)

此外,您可以完全跳过该功能并简单地

a = strcmp(a,'true'); 
Run Code Online (Sandbox Code Playgroud)

  • 或者,如果OP想要更简单一点:`string2boolean = @(s) ~strcmpi(s, 'false');` (2认同)
  • @StewieGriffin 这更短,但并不简单。特别是对于初学者来说,上面的代码更具可读性。 (2认同)