![](/img/trans.png)
[英]How to extract coefficients from a line equation in python without using numpy?
[英]How can I extract variables with nonzero coefficients from an equation using a Perl regex?
我希望获得特定数字排列的非零系数。 我有下面的数字集,我希望用正则表达式严格提取非零系数( x2
, x3
, x5
)
x1 *0.000000+ x2 *-0.100000+ x3 *0.850000+ x4 *0.000000+ x5 *0.000056+ x6 *0.000000
我试过这样做
(\*[-+]?[0]*\.?[0]+)
但我不确定是否应该宣布它不应该考虑"*0.000000"
我建议您使用这样一个事实,即您可以使用完整的编程语言来简化正则表达式以捕获所有系数,然后使用grep消除零:
#!/usr/bin/env perl
use strict;
use warnings;
my $eqn = "x1 *0.000000+ x2 *-0.100000+ x3 *0.850000+ x4 *0.000000+ x5 *0.000056+ x6 *0.000000 ";
my %eqn = ($eqn =~ /(x[0-9]+) \s [*] (-?[0-9.]+) [+]/gx);
print "$_\n" for grep $eqn{$_} != 0, keys %eqn;
输出(除非您对变量名称进行排序,否则顺序将不一致):
x3 x5 x2
这可能看起来太多额外的工作,但将方程式解析为将变量映射到系数的哈希可能实际上可以根据您正在做的事情的确切性质来保存您的工作。 我假设您正在根据系数幅度进行某种模型选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.