在Python中,人们可以做这样的事情
the_weather_is = 'sunshiny'
bad_mood = {'dreary', 'drizzly', 'flawy', 'blustery', 'thundery'}
if the_weather_is in bad_mood:
print 'Stay at home...'
else:
print 'All fine...'
MATLAB如何看起来像,i。即有一个字符串列表(选项),并检查string
是否在list
?
实际上我甚至都不知道,在MATLAB中可以使用什么作为列表。 CellArrays?
答案 0 :(得分:3)
bad_mood
不是list
,而是cell array。
您可以使用ismember
function检查the_weather_is
单元格数组中是否bad_mood
:
ismember(the_weather_is, bad_mood)
替代解决方案(来自Benoit_11's answer 的)是使用strcmp
function,并结合any
function:
any(strcmp(the_weather_is, bad_mood))
strcmp
将the_weather_is
与每个bad_mood
单元格数组进行比较,并返回逻辑数组。 any
检查返回的逻辑数组是否包含至少一个true
值。
答案 1 :(得分:2)
您可以使用strcmp检查the_weather_is是否是单元格数组bad_mood的一部分:
the_weather_is = 'sunshiny';
bad_mood = {'dreary', 'drizzly', 'flawy', 'blustery', 'thundery'};
if any(strcmp((bad_mood),the_weather_is))
disp( 'Stay at home...')
else
disp( 'All fine...')
end