养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

怎么用Mathematica进行模式匹配

时间:2024-10-28 17:16:23

给出一个列表:A={{b,h[x],c,2郏柃妒嘌^x,6,{1/2,2^c^b,9,d},x^6,b},e,12.3,3^x,x^3,5/6,3,b,5,罪焐芡拂m+n,6,{y^7,u+7,2+3,7,t,1,h}}要求用Mathematica的模式匹配的方法,从A里面找出指定的元素。

怎么用Mathematica进行模式匹配

工具/原料

电脑

Mathematica

基本的模式匹配方法

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

怎么用Mathematica进行模式匹配

2、匹配第一层的所有整数:Cases[A,_Integer]只得到3个整数,因为Mat丝群闻栝hematica把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,I艘绒庳焰nfinity]为什么2+3没有找出来?因为对A进行定义的时候,2+3已经被算出结果了。

怎么用Mathematica进行模式匹配

怎么用Mathematica进行模式匹配

© 一点知识