0

我有一个很长的表达式,我需要用' * '其中的逐个元素乘法符号替换所有乘法符号' .* '。手工完成需要很长时间。有没有简单的方法来做到这一点?

谢谢

4

4 回答 4

0

我想做两点。

  1. 我会用正则表达式进行替换。像regexprep('\.?*\*','.*')这样会考虑到是否已经有一个.

  2. 做到这一点的方法。程序sed将是完美的。但是您也可以在 Matlab 中执行此操作 - 遍历所有文件并替换文本。

请记住,matlab 在重新散列文件之前不会知道更改。这意味着您不能立即使用替换的功能。

于 2013-05-22T08:10:26.063 回答
0

Matlab 有一个内置函数(我认为它在所有安装中)来执行此操作:vectorize. 符号工具箱使用此功能。它也将转换^/元素等价物。它基于strrepstrfindwhich are join 将比 Matlab 的慢正则表达式实现更快。在命令窗口中键入edit vectorize以查看简要代码,您可以根据需要轻松复制和修改。

于 2013-05-22T15:18:28.590 回答
0

我想这Ctrl + H就是你要找的。

于 2013-05-22T07:45:32.957 回答
0

要以编程方式执行此操作,您应该使用正则表达式替换:

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

正则表达式的\.?\*意思是“匹配所有由 0 或 1 个点 ( \.?) 后跟乘号 ( \*) 的字符串,即匹配字符串'.*'and '*',并将它们都替换为'.*'.

于 2013-05-22T09:03:07.180 回答