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