[已解决] Matlab请问我用符号计算计算出了一堆公式,但我想用r去替换公式中的某部分该怎么做啊?比如

[复制链接]
yygone 发表于 2022-6-23 17:39:46
比如f=((x - xi)^2 + (eta - y)^2)+1,我想用r替换((x - xi)^2 + (eta - y)^2)部分, 即变成f=r+1 请问这该怎么做啊 subs为啥不行 subexpr也不行

最佳答案


maple1314168 发表于 2022-6-28 11:27:48
yygone 发表于 2022-6-27 10:03
请问具体如何操作呀

syms x xi eta y
f=((x - xi)^2 + (eta - y)^2)+1;
f=str2sym(replace(string(f),'(x - xi)^2 + (eta - y)^2','r'))

f =r + 1

5 条回复


halleyhit 发表于 2022-6-26 17:05:56
因为你要的操作并不是subs替换,而是定义了新的变量r,及与r相关的函数f=r+1,所以,你要新建一个f函数

maple1314168 发表于 2022-6-26 17:14:48
直接转为字符,用replace函数替换,再回复sym型。
不过,需要完全匹配。

yygone 发表于 2022-6-27 10:02:24
halleyhit 发表于 2022-6-26 17:05
因为你要的操作并不是subs替换,而是定义了新的变量r,及与r相关的函数f=r+1,所以,你要新建一个f函数 ...

请问具体改如何操作呀

yygone 发表于 2022-6-27 10:03:13
maple1314168 发表于 2022-6-26 17:14
直接转为字符,用replace函数替换,再回复sym型。
不过,需要完全匹配。

请问具体如何操作呀:'(

maple1314168 发表于 2022-6-28 11:27:48
yygone 发表于 2022-6-27 10:03
请问具体如何操作呀

syms x xi eta y
f=((x - xi)^2 + (eta - y)^2)+1;
f=str2sym(replace(string(f),'(x - xi)^2 + (eta - y)^2','r'))

f =r + 1
回复此楼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表