ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

validatestring

テキストの有効性をチェック

構文

validStr = validatestring(str,validStrings)
validStr = validatestring(str,validStrings,argIndex)
validStr = validatestring(str,validStrings,funcName)
validStr = validatestring(str,validStrings,funcName,varName)
validStr = validatestring(str,validStrings,funcName,varName,argIndex)

説明

validStr = validatestring(str,validStrings) は、文字ベクトル str の有効性をチェックします。str が、大文字と小文字を区別しないで明確にセル配列 validStrings の文字ベクトルと一致している場合、関数 validatestring は一致する文字ベクトルを validstr に返します。それ以外の場合、MATLAB® はエラーをスローし、形式化されたエラー メッセージを出力します。

validStr = validatestring(str,validStrings,argIndex) は、生成されるエラー メッセージの一部として関数の引数リストに入力の位置を含めます。

validStr = validatestring(str,validStrings,funcName) は、生成されるエラー識別子に指定された関数の名前を含めます。

validStr = validatestring(str,validStrings,funcName,varName) は、生成されるエラー メッセージに指定された変数の名前を含めます。

validStr = validatestring(str,validStrings,funcName,varName,argIndex) は、生成されるエラー メッセージまたはエラー識別子に指定された情報を含めます。

入力引数

str

検証する文字ベクトル。

validStrings

許容される文字ベクトルのセル配列。

funcName

検証する入力をもつ関数の名前を指定する文字ベクトル。空の文字ベクトル '' を指定した場合、関数 validatestringfuncname の入力を無視します。

varName

入力変数の名前を指定する文字ベクトル。空の文字ベクトル '' を指定した場合、関数 validatestringvarName の入力を無視します。

argIndex

入力引数の位置を指定する正の整数。

出力引数

validStr

str と大文字と小文字の区別なく明確に一致する validStrings の要素を含む文字ベクトル。

例 — 'ball' を一致させます。. .戻り値一致の種類
ball, barn, bellball完全一致
balloon, barnballoon部分一致 (先頭文字)
ballo, balloo, balloonballo (最も短い一致)複数の部分一致 (各文字ベクトルが別の文字ベクトルのサブセットである場合)
balloon, balletエラー一意の文字ベクトルとの部分一致が複数
barn, bellエラー該当なし

一連の有効な値に文字ベクトルが含まれているかどうかをチェックします。

str = 'won';
validStrings = {'wind','wonder','when'};

validStr = validatestring(str,validStrings)

str は一意の文字ベクトルとの部分一致であるため、以下のコードが返されます。

validStr =

wonder

ただし、str が複数の文字列と部分一致し、文字ベクトルがお互いのサブセットでない場合、validatestring はエラーをスローし、書式付きメッセージを表示します。

str = 'won';
validStrings = {'wonder','wondrous','wonderful'};

validStr = validatestring(str,validStrings)

エラー メッセージは、次のように表示されます。

Expected input to match one of these strings:

'wonder', 'wondrous', 'wonderful'

The input, won, matched more than one valid string.

カスタム関数の入力を確認し、生成されたエラーに入力名と位置についての情報を含めます。

function a = findArea(shape,ht,wd,units)
   a = 0;
   expectedShapes = {'square','rectangle','triangle'};
   expectedUnits = {'cm','m','in','ft','yds'};

   shapeName = validatestring(shape,expectedShapes,mfilename,'Shape',1)
   unitAbbrev = validatestring(units,expectedUnits,mfilename,'Units',4)

有効な入力文字ベクトルを使用して関数を呼び出した場合、

myarea = findArea('rect',10,3,'cm')

関数はローカル変数 shapeNameunitAbbrev に入力を格納します。

shapeName =

rectangle


unitAbbrev =

cm


myarea =

     0

ただし、以下のように入力が有効でない場合、

myarea = findArea('circle',10,3,'cm')

MATLAB には、以下のように表示されます。

Error using findArea (line 6)
Expected input number 1, Shape, to match one of these strings:

'square', 'rectangle', 'triangle'

The input, 'circle', did not match any of the valid strings.

関数名はエラー識別子の一部であるため、

MException.last.identifier

は、以下を返します。

MATLAB:findArea:unrecognizedStringChoice
この情報は役に立ちましたか?