switch / case语句matlab代码

时间:2014-01-29 09:53:40

标签: matlab

function myFunc = executeCmdByKind(var1,kind)

switch kind
case 'open'
cmdToExecute = [''var1 '','' locationIs '',''clear''];

case 'close'
cmdToExecute = [''var1 '','' locationIs '',''delete''];

case 'move'
cmdToExecute = [''var1 '','' locationIs '',''move''];



   end
a = system(cmdToExecute);
end 

我的问题是:编写此代码是否有更好的“最佳”方法,因为我只调用相同的cmdToExecute最新的arg更改

谢谢,

2 个答案:

答案 0 :(得分:2)

你的语法对我来说毫无意义,但我会坚持下去。您可以像我这样简化您的代码:

function myFunc = executeCmdByKind(var1,kind)

switch kind
case 'open'
    last = ''clear'';

case 'close'
    last = ''delete'';

case 'move'
    last = ''move'';

end

cmdToExecute = [''var1 '','' locationIs '', last];

答案 1 :(得分:1)

一如既往,有几种方法可以做到这一点。我会这样做:

function myFunc = executeCmdByKind(var1,kind)
  a = {'open', 'close', 'move'};
  b = {'clear', 'delete', 'move'};
  logi = ismember(a, kind);
  cmdToExecute = [var1, locationIs, b{logi}];

这不是最好的代码,但它很简短,如果你想要那个;-) 首先,我通过kind查看它在向量a中的索引,然后在检索索引之后,我可以从b中选择相应的元素: - )

编辑:简短,将来可以通过更多元素轻松扩展: - )