求解元胞数组中的方程
我在像这样的元胞数组中有一些线性方程(方程的数量每次都不同):
equs = { '2*X1+X2+6', '3*X2-X1' }
如何用 Matlab 求解这些方程? 我可以简单地通过这个函数得到我的答案:
ans = solve(equs(1), equs(2));
但是,由于方程的数量每次都不同,我希望这可以自动完成。
I have some linear equations in a cell array like this ( The number of equations vary each time ) :
equs = { '2*X1+X2+6', '3*X2-X1' }
How can I solve these equation with Matlab?
I can get my answer simply by this function :
ans = solve(equs(1), equs(2));
But, as the number of equations differ each time, I want this to be done automatically.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我假设您希望方程等于 0,并且方程中不出现等号。
解析表达式以找到系数 - 放入矩阵 (A)。
我在这里使用了一个近乎技巧,假设变量始终为 x1、x2 等。此外,您还必须为乘法编写 * 符号。 FindCoeffs 函数通过将 1 和 0 分配给变量来查找系数。
然后,您可以使用 linsolve 求解方程。
I am assuming that you want the equations to be equal to 0, and that no equals sign appears in the equations.
Parse the expressions to find the coefficients - put into a matrix (A).
I am using here a near trick that assumes that the variables are always x1, x2, etc. Also you must write the * sign for multiplications. The FindCoeffs function finds the coefficients by assigning ones and zeros to the variables.
Then, you can solve the equations using linsolve.
您可以使用以下方法求解存储在元胞数组中的方程:
也适用于未知数(如果
symvar
无法正确确定它们):You can solve equation stored in a cell array by using:
Works for the unknown, too (in case they are not properly determined by
symvar
):