【发布时间】:2015-04-22 08:01:20
【问题描述】:
我有一个问题。问题如下: 如何在 Matlab 中比较字符串?
我有一个变量,它叫做数据。该变量表示当前字符串,如果其中有子字符串,我要比较它。
我有很多不同的可能性,这就是我想使用 Switch-Statement 的原因。
在代码示例中,您可以看到带有变量“数据”的开关。如果变量包含子字符串“开始”,则应执行以下情况。否则应使用“否则”语句。
我希望你能明白我想做什么。感谢您的帮助和支持。
function testObj = workflow(testObj, data)
switch data
case strfind(data, 'Start')>5
disp('Yes')
case strfind(data, 'End')>10
disp('Yes')
case strfind(data, 'NewTest')>15
disp('Yes')
otherwise
disp('No')
end
end
文档:
一个 switch 块有条件地从多个选项中执行一组语句。每个选择都是一个案例。
求值的 switch_expression 是一个标量或字符串。一个评估 case_expression 是标量、字符串或标量元胞数组,或 字符串。 switch 块测试每个案例,直到其中一个案例是 真的。在以下情况下为真:
对于数字,eq(case_expression,switch_expression)。
对于字符串,strcmp(case_expression,switch_expression)。
对于支持 eq 函数的对象, eq(case_expression,switch_expression).
对于元胞数组 case_expression,至少有一个元素 元胞数组匹配 switch_expression,如上面为数字定义的, 字符串和对象。
当 case 为真时,MATLAB 执行相应的语句,并且 然后退出切换块。
otherwise 是可选的,仅在没有 case 为真时执行。
【问题讨论】:
-
你读过文档吗?
-
@David 是的,我阅读了文档,但没有关于它的信息。
-
为什么没有
if,elseif, ...? -
@m.s.可以用 if,elseif... 解决问题,但我有这个问题,我认为结构会比 if elseif 好得多
标签: string matlab switch-statement compare