在MatLab中识别白金汉Pi计算的代数表达式中的幂

mm9b1k5b  于 2022-12-27  发布在  Matlab
关注(0)|答案(1)|浏览(165)

这是我之前问here的一个问题的延续。
如果我在MatLab中创建一个符号表达式

syms L M T
F = M*L/T^2

我想确定每个维度M、L或T的幂。在这种情况下,答案应该是

  • 对于M,1
  • 对于L,1
  • 对于T,-2

如果表达式F是MatLab中使用coeffs函数的多项式,则有一种相对简单的方法来实现这一点,然而,就MatLab而言,我的表达式显然不是多项式。
最后,我将使用至少两个参数,因此我将把它们放在一个单元格数组中,因为我预计cellfun会很有用。

V = L/T
param = {F,V};

最终输出应为表格,其中行对应于每个维度L、M和T,列对应于每个参数FV

0dxa2lsx

0dxa2lsx1#

syms L M T
F = M*L/T^2

[C,T] = coeffs(expand(log(F),'IgnoreAnalyticConstraints',true))
[exp(T).' C.']

它返回表:

相关问题