怎么用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怎么用图片的中值来代替图片的这些像素
  • 热门搜索
    苏打粉的作用 eliauk是什么意思 homie是什么意思 直言不讳的意思 什么是微信公众平台 竭尽全力的意思 第一次见面聊什么 芦荟作用 宣木瓜的功效与作用 河北简称什么