关于Map函数的想法
来源:互联网 发布:linux makefile. 例子 编辑:程序博客网 时间:2024/06/02 18:31
关于Map函数的想法
这一篇文章我会讲一下Map这个函数的思想,并举一个例子,希望大家举一反三。
问题
有一组数,我想将 > 1 的全部变成1, < 1 的全部变成0,应该如何操作。
想法
我们可以先定义一个规则,就是把上面的要求变成一个表达式,如下所示
If[t > 1, 1, 0]
接着,我们可以使用Map
函数将上面的规则应用到数组中的每一个元素中去。于是我们得到了下面的解决方案
当然,我们也可以将上面的式子缩写,写成如下的形式
问题扩展
我们将上面的问题变为:我想将 > 1 的全部变成1, <-1 的全部变成-1,在-1到1之间的变成0,应该如何操作。
其实这个问题的解决办法和上面的是一样的,也是先把规则定义好,在使用Map即可。
作用
我们再来看一个具体的应用场景:比如想要统计一组数组中大于1的元素的个数,那么就可以进行如下的操作。
思路
1. 首先将数组中>1的数都变成1,<1的数都变成0
2. 对新的数组进行求和
3. 这样就统计出一个数组中所有大于1的元素的个数
Clear[rule];rule[t_] := If[t >= 1, 1, 0]Total[Map[rule, list]]
或者,上面的也可以变成对一个数组中大于一的元素进行求和,也可以进行如下的操作
1. 首先将数组中>1的数都变成1,<1的数都变成0
2. 将新的数组与原数组相乘,此时<1的都是0*x,都变成了0,而大于1的不变
3. 对新的数组求和,这样就统计出一个数组中所有大于1的元素的和了
Clear[rule];rule[t_] := If[t >= 1, 1, 0]Total[Map[rule, list]*list]
以上,所有
2017/6/9
阅读全文
0 0
- 关于Map函数的想法
- 由CSP 题目引发的关于Map的一些想法
- 关于扩展Google Map API的一些想法
- 关于函数调用得到传递参数的想法
- 关于静态构造函数的一些个人想法
- 关于指针作为函数参数的一些想法
- 关于成功的想法
- 关于J2EE的想法
- 关于加班的想法
- 关于创业的想法
- 关于Webos的想法
- 关于复读机的想法
- 关于封装的想法
- 关于厌恶的想法
- 关于csdn的想法
- 关于输入法的想法
- 关于程序设计的想法
- 关于OpenStreetMaps的想法
- Anacoda安装Pacakge
- The type javax.servlet.http.HttpServletRequest cannot be resolved. It is indirectly referenced from
- Ride中将tuple数组类型转换为String字符串类型
- (1)can总线基本概念
- mysql数据库的函数
- 关于Map函数的想法
- 音频
- Codeforces Round #418 (Div. 2)
- TensorFlow的基本理论知识(一)
- 函数的子模性质
- 一个上啦加载下拉刷新
- Qt5.8 按钮弹出菜单
- C++学习(34)
- 字符串hash——洛谷P1117 优秀的拆分