hi_there のようないくつかのアンダースコアを含む文字列があるとします。
その文字列を「こんにちは」に自動変換する方法はありますか?
(ちなみに、元の文字列は変数名で、プロット タイトルに変換しています)。
文字列変数 's' に対してこの Matlab コードを試してください
s(s=='_') = ' ';
もっと複雑なことをしなければならない場合、たとえば複数の可変長文字列の置換を行うなど、
s(s == '_') = ' '
大きな痛みになります。交換のニーズがさらに複雑になった場合は、次の使用を検討してregexprep
ください。
>> regexprep({'hi_there', 'hey_there'}, '_', ' ')
ans =
'hi there' 'hey there'
そうは言っても、あなたの場合、@AndreasH.のソリューションが最も適切であり、regexprep
やり過ぎです。
もっと興味深い質問は、なぜ変数を文字列として渡しているのかということです。
regexprep() は、探しているものである可能性があり、一般的に便利な関数です。
regexprep('hi_there','_',' ')
最初の引数文字列を取り、2 番目の引数のインスタンスを 3 番目の引数に置き換えます。この場合、すべてのアンダースコアがスペースに置き換えられます。
Matlab では文字列はベクトルであるため、_ を空白に置き換えるなど、標準の演算子を使用して単純な文字列操作を実行できます。
text = 'variable_name';
text(text=='_') = ' '; //replace all occurrences of underscore with whitespace
=> text = variable name