Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 20:30   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 我如何从Matlab重写方程式以在C ++中使用

我已经在Matlab中推导并简化了一个方程,并想在c ++程序中使用它。 Matlab喜欢使用幂, ^符号,但c ++一点也不喜欢。如何让Matlab重写方程式,以便输出c ++友好方程式?



回答:

如果方程式的时间过长而又不想手工处理,则可以考虑重新格式化该方程式以使其对C ++友好的一种方法是使用REGEXPREP函数解析该方程式的MATLAB代码文本MATLAB。这是一个示例,说明如何用pow(x,2)或pow(y,3)替换形式x^2或y.^3表达式:

eqStr = 'the text of your equation code'; %# Put your equation in a string expr = '(\w+)\.?\^(\d+)'; %# The pattern to match repStr = 'pow($1,$2)'; %# The replacement string newStr = regexprep(eqStr,expr,repStr); %# The new equation string 您只需要获取MATLAB方程的代码,然后将其放在字符串变量eqStr 。 REGEXPREP的输出将成为新的C ++友好方程newStr 。

您还可以使用动态运算符更改替换字符串,以提供x*x或y*y*y形式的结果。例如:

eqStr = 'the text of your equation code'; %# Put your equation in a string expr = '(\w+)\.?\^(\d+)'; %# The pattern to match repStr = '${repmat([$1,''*''],1,$2-''0''-1)}$1'; %# The replacement string newStr = regexprep(eqStr,expr,repStr); %# The new equation string

更多&回答...
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:16


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.