概述
Emm...上次好像说这个月不更了????????????。刚碰到点事有点烦躁,还是趁这会写点东西缓一缓吧????????????。
问题背景:
(如果看不懂这次的问题可以忽略,我可能说的也不怎么清楚)
我今天下午在学Simulink的时候,学到了一个叫Lookup Table的模块,它其实就相当于一个数据库,根据输入的值(相当于自变量)在Table中查找对应的要输出的值(相当于因变量)。
这个模块它有个要求就是BreakPoints(自变量)必须是一个递增的序列。那么当我们需要反查表时就要把对应的TableData(因变量)作为BreakPoints(自变量)来设置一个Lookup Table。
由于原TableData(原因变量)可能是一个递减的序列,所以在反查表时把原Table Data作为Break Points时就可能会出现BreakPoints为递减的情况,而这个模块要求BreakingPoints必须递增。
在这时候呢,可以手动去改,也可以写一段代码来生成用于反查的Lookup Table,那么这就需要来判一断序列是递增还是递减了。
(写代码来解决这个问题是因为,以后可以把这功能集成到一个专门针对Simulink建模的小工具,这样会很方便)
实现方法:
方法一
在数学中判断一个数列是增是减的方法是看后一项和前一项的差值:比如现在有一个序列 a,那么如果对所有的 i 有
a(i) - a(i-1) > 0
的话那么这个序列就是一个严格单调递增的数列。
你可以通过一个循环来遍历所有元素,在每次循环中判断当前元素和上一个元素之间的差值,如果在每次循环中这个差值都是大于0的那么这个序列就是递增的。
其实就是做差分
(由于这个方法太low,也很简单,我就不写代码了)
方法二
MATLAB中有一个自带的可以求差分函数:diff 。它就可以实现上面说的差分:
怎么样?????
方法三
我们知道一个递增的序列如果对他按由小到大排序它还是原来的它没有变,嘿嘿????,那么解决办法不就来了么:
这个方法三是不是很清晰????。
最后
以上就是坚强店员为你收集整理的一次递减代码matlab,一个简单的方法判断序列是递增还是递减的全部内容,希望文章能够帮你解决一次递减代码matlab,一个简单的方法判断序列是递增还是递减所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复