2017-01-23 15 views
4

私はthisコードを読んでいたし、ライン97で私は、次のコードを見つけました:Matlabスイッチ/ケースの空文?

switch lower(opts.color) 
    case 'rgb' 
    case 'opponent' 
    ... 

私は(documentationに応じて)空の文を見たことがありません。どういう意味ですか?

"lower(opts.color)はどちらかrgbopponentであれば、やる..."

または

"lower(opts.color)rgbは何もしないし、それはopponentをかどう...を行う場合には、"?

答えて

8

ブロックが空の場合、その特定のケースでは何も実行されません。したがって、opt.colors'rgb'の場合、何も行われません。

作者もcaseとしてそれを含めるように気にしたことの理由は、彼らがいなかった場合は、(供給色空間が有効/認識されなかったために'hsv'opts.colorを設定する)otherwiseブロック内のコードがあろうからopt.colors'rgb'であった場合に実行されることは明らかに望ましくない動作です。

ブロックは、いくつかの値に一致caseブロックの構文はcell array for the case expressionの使用を必要と

if ~strcmpi(opts.color, 'rgb') 
    switch lower(opts.color) 
     case 'opponent' 
      % Do stuff 
     case 'hsv' 
      % Do other stuff 
     otherwise 
      % Throw warning 
    end 
end 

の機能的等価物です。

switch lower(opts.color) 
    case {'rgb', 'opponent'} 
     ... 
end 
+0

ありがとうございます! :) – justHelloWorld