如何替换符号';*';使用';*';在matlab表达式中?

如何替换符号';*';使用';*';在matlab表达式中?,matlab,Matlab,我有一个长表达式&我需要将所有乘法符号'*'替换为其中的逐元素乘法符号'.'。用手做这件事要花很长时间。有没有简单的方法 谢谢我想你需要的是Ctrl+H。我想说两点 我会用正则表达式替换。类似于regexprep('\.?*\*','.*'),如果之前已经有一个,则将考虑到它 这样做的方法。该计划将是完美的做到这一点。但是你也可以在Matlab中循环所有文件并替换文本 请记住,matlab在重新刷新文件之前不会意识到这些更改。这意味着您不能立即使用替换的函数。要以编程方式执行此操作,您应该使用正

我有一个长表达式&我需要将所有乘法符号
'*'
替换为其中的逐元素乘法符号
'.'
。用手做这件事要花很长时间。有没有简单的方法


谢谢

我想你需要的是
Ctrl+H

我想说两点

  • 我会用正则表达式替换。类似于
    regexprep('\.?*\*','.*')
    ,如果之前已经有一个
    ,则将考虑到它

  • 这样做的方法。该计划将是完美的做到这一点。但是你也可以在Matlab中循环所有文件并替换文本


  • 请记住,matlab在重新刷新文件之前不会意识到这些更改。这意味着您不能立即使用替换的函数。

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

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

    正则表达式
    \.?\*
    的意思是“匹配0或1点(
    \.?
    )后跟乘法符号(
    \*
    )的所有字符串,即它匹配字符串
    '.*'.
    '.*'
    ,并用
    '.*.'
    替换这两个字符串。Matlab有一个内置函数(我认为它在所有安装中都有)为此:。符号工具箱使用此函数。它还将
    ^
    /
    转换为元素形式的等价物。其基于和连接的速度将快于Matlab的慢速正则表达式实现。在命令窗口中键入
    编辑向量化
    ,以查看简短的代码,您可以根据您的需要轻松地复制和修改。

    Cntrl+F?查找并替换至少所有windows应用程序都具有的工具…在另一个IDE(如Eclipse)中加载您的Matlab项目通常很有用,它可以执行regexp搜索和替换。为什么要将
    *
    替换为
    *
    ?我假设您知道
    [12]*[1;2]
    不等于
    [12].[1;2]
    (它实际上会出错).有什么方法可以在函数中自动执行吗?我猜你会调用我的
    ,但我不太确定,从你给出的术语的角度来看,它是否会自动执行!好吧,如果我要使用Ctrl+H方式,还有一个问题。Matlab不能为我显示整个表达式,它说“输出被截断。文本超过命令窗口显示的最大行长25000个字符“。所以我不能使用Ctrl+H,我现在该怎么办?是的,我知道,但是如果a看不到完整的输出,cat ih如何帮助?非常感谢bdecaf,它非常有用。我也发现了这个。哦-你没有指定它是符号计算的输出。但它仍然可以工作。”。