0

長い式があり、すべての乗算記号' * 'を要素ごとの乗算記号に置き換える必要があり' .* 'ます。手作業で行うには時間がかかりすぎます。それを行う簡単な方法はありますか?

ありがとう

4

4 に答える 4

0

プログラムで行うには、正規表現の置換を使用する必要があります。

>> str = 'x * y .* z';
>> regexprep(str, '\.?\*', '.*')
ans =
x .* y .* z

正規表現は、「0 または 1 ドット ( ) の後に乗算記​​号 ( ) が続く\.?\*すべての文字列に一致する」ことを意味します。つまり、文字列andに一致し、両方を に置き換えます。\.?\*'.*''*''.*'

于 2013-05-22T09:03:07.180 に答える
0

やりたいことは2点。

  1. 正規表現で置き換えます。すでにbeforeがある場合は、そのようregexprep('\.?*\*','.*')に考慮されます。.

  2. それを行う方法。プログラムsedはそれを行うのに最適です。しかし、Matlab でそれを行うこともできます - すべてのファイルをループしてテキストを置き換えます。

ファイルを再ハッシュするまで、matlab は変更を認識しないことに注意してください。つまり、置き換えられた機能をすぐに使用することはできません。

于 2013-05-22T08:10:26.063 に答える
0

Matlab には、これを行うための組み込み関数があります (すべてのインストールにあると思います) vectorize。Symbolic Toolbox はこの関数を使用します。また、要素ごとの同等のものにも変換さ^れます。/に基づいて結合されているものは、Matlab の遅い正規表現の実装よりも高速になりますstrrepstrfindコマンド ウィンドウに入力edit vectorizeすると、必要に応じて簡単にコピーして変更できる簡単なコードが表示されます。

于 2013-05-22T15:18:28.590 に答える