2014-09-29 63 views
1

有没有办法编写更高效,更通用的代码?MATLAB编程:优化我的代码

由于价值回报没有变化,我需要在这里开关吗?

function result = whichValue(value) 
    switch value 
     case 'green_ok' 
      result = 'green&ok'; 
     case 'green_ko' 
      result = 'green&ko'; 
     case 'green_check' 
      result = 'green&check';      
    end 
end   
+0

你能澄清这样做的目的功能?你只是想把所有'_'切换到'&'? – chrisb2244 2014-09-29 07:30:49

+0

的目标是将字符串放入函数中,然后用每个字符串调用该函数:例如,如果我期望看到'green&ko',我调用whichValue('green_ko') – lola 2014-09-29 07:34:06

+0

您的意思是您将传递一个包含字符串,并且您想知道哪个值存储在您的变量中,但将'_'更改为'&'?如果是这样,我认为一个'更高效的'代码将避免编写一个单独的函数,并考虑尝试替换您的变量,如果需要可能存储为一个新的变量。 – chrisb2244 2014-09-29 07:37:24

回答

0

如何使用strsplit

value_split = strsplit(value, '_'); 
result = [value_split{1}, '&', value_split{2}] 
+0

这与value_split {2}不一致 – lola 2014-09-29 07:06:15

+0

不正确 – lola 2014-09-29 07:14:13

+0

@lola在这种情况下,value的值是多少? – Dan 2014-09-29 07:18:45

1

这似乎是一个做事的好办法,但似乎对你的例子工作:

result=value 
value(value=='_')='&' 
+0

我的代码或您的建议的糟糕方式?为什么? – lola 2014-09-29 07:07:41

+0

@lola我的建议,不是你的代码,对于混淆抱歉!像我所做的那样使用逻辑索引似乎对字符串的操作很奇怪,但它看起来确实有效! – David 2014-09-29 23:05:47