怎么用Mathematica进行模式匹配?

 时间:2026-02-14 20:23:39

1、明确一下,A是由三层列表构成的。

怎么用Mathematica进行模式匹配?

2、匹配第一层的所有整数:

Cases[A, _Integer]

只得到3个整数,因为Mathematica把A里面的子列表视为A的一个元素。

看,下一步。

怎么用Mathematica进行模式匹配?

3、找出A的第一层的子列表:

Cases[A, _List]

怎么用Mathematica进行模式匹配?

4、找出A的第一层的浮点数:

Cases[A, _Real]

结果只找到12.3,不包括里面的整数和分数。

原因是,Real是浮点数,不是全体实数。

怎么用Mathematica进行模式匹配?

5、找出A里面第一层的有理数:

Cases[A, _Rational]

同样,Mathematica只找到5/6这个分数,把小数和整数都排除在外。

怎么用Mathematica进行模式匹配?

6、找出A第一层的奇数:

Cases[A, t_ /; Mod[t, 2] == 1]

怎么用Mathematica进行模式匹配?

7、找出A第一层的所有非偶数:

Cases[A, t_ /; Mod[t, 2] != 0]

怎么用Mathematica进行模式匹配?

8、找出A的第一层的所有字母:

Cases[A, _Symbol]

m+n被视为表达式,不是字母。

怎么用Mathematica进行模式匹配?

9、找出A第一层的加法表达式:

Cases[A, _Plus]

怎么用Mathematica进行模式匹配?

10、A的第一层里面,以x为指数的幂运算表达式:

Cases[A, _^x]

怎么用Mathematica进行模式匹配?

11、Cases[A, x^_]

怎么用Mathematica进行模式匹配?

1、深入第二层,寻找A里面幂运算表达式:

Cases[A, _Power, 2]

怎么用Mathematica进行模式匹配?

2、寻找A里面所有的幂运算表达式:

Cases[A, _Power, Infinity]

怎么用Mathematica进行模式匹配?

3、A里面的所有字母:

Cases[A, _Symbol, Infinity]

令人吃惊的是,Mathematica竟然可以深入到表达式里面寻找字母,比如m和n。

怎么用Mathematica进行模式匹配?

4、寻找所有的加法表达式:

Cases[A, _Plus, Infinity]

为什么2+3没有找出来?

因为对A进行定义的时候,2+3已经被算出结果了。

怎么用Mathematica进行模式匹配?

怎么用Mathematica进行模式匹配?

  • 如何在matlab中查找现有对象的句柄?
  • matlab如何备份文件
  • Mathematica 指数分布
  • 如何使用matlab绘制三维图形
  • matlab怎么用图片的中值来代替图片的这些像素
  • 热门搜索
    好吃的面条 周公解梦大全 锅包肉的家常做法 睾丸痛怎么回事 土味情话大全撩女朋友 大同大学怎么样 黄网大全 炒莲藕怎么做好吃 干粽叶怎么处理才能包粽子 凉拌金针菇的家常做法