2

在 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 等效项是什么样子的,即有一个字符串列表(选项)并检查是否stringlist

其实我什至不知道,什么可以用作 MATLAB 中的列表。细胞阵列?

4

2 回答 2

4

bad_mood不是 a list,它是一个元胞数组

您可以使用ismember函数来检查是否the_weather_isbad_mood单元格数组中:

ismember(the_weather_is, bad_mood)

替代解决方案(来自Benoit_11 的回答)是使用strcmp功能,结合any功能

any(strcmp(the_weather_is, bad_mood))

strcmpthe_weather_is与元胞数组的每个字符串进行比较bad_mood并返回一个逻辑数组。any检查返回的逻辑数组是否包含至少一个true值。

于 2014-08-22T12:36:06.447 回答
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
于 2014-08-22T12:38:22.537 回答