如何用matlab筛选一个数组中大于某值的数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用matlab筛选一个数组中大于某值的数相关的知识,希望对你有一定的参考价值。

例如a=【12,4,25,36,5,18,9】求大于10的数

数组很大,运算速度很慢,可以提出所有大于0的值一起运算,得到的值再放回原位么?
对于这一问,可以采用逻辑下标,对大的数组可以有效地提高处理速度。
比如数组(或矩阵)为A,10行20列,其中有3个元素大于0,具体位置未知. index_positive = A>0;这样得到的index_positive 是这些元素的逻辑下标,index_positive是一个与A相同大小的10行20列的0,1值数组,只有那三个元素的位置上,值是1.
然后 B=A(index_positive)就得到了这三个元素的值。然后对B里的元素进行需要的运算。最好是相同的或有规律的,比如所有元素乘以2,那么就是C=2×B;或者第1个元素×1, 第2个元素×2等,这时可以D=1:3; C=B .* D; 。 如果每一个要进行不同的运算,那这里只有对B进行循环。
最后要把C放回原位,用A(index_positive)=C;就可以了。
对于一个1000×1000的数组(矩阵),这个方法的速度提高是很可观的。原因在于它使用C语言实现了循环,而for循环是用matlab语言实现的,判断循环条件的时候大大消耗了时间。
参考技术A find函数即可搞定 具体find(a>10)

Numpy:如何用向量元素除以每一行

参考技术A numpy中直接用 * 即可表示数与向量的乘法,参考python 2.7的一个例子: inport numpy as np a = np.array([1,2,3,4]) # 向量 b = 5 # 数 print a*b ++++++++++++ [5,10,15,20]

以上是关于如何用matlab筛选一个数组中大于某值的数的主要内容,如果未能解决你的问题,请参考以下文章

MATLAB中怎么用disp输出多个矩阵

如何用matlab生成一个3阶和5阶魔方矩阵

matlab 如何用插值给NAN赋值

SQL语句查询:查询满足第1个字段等于某值且第2个字段大于某值的所有记录中,统计第3个字段的平均值。

如何用Matlab把数据分类

如何用sql查询某值类型字段各个记录中含有的特定数字?