检查元素列表中元素的存在

时间:2014-08-22 12:26:38

标签: matlab list contain

在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?

2 个答案:

答案 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))

strcmpthe_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