Performance 如何在MATLAB中对监控数组中每个元素的代码进行矢量化?

Performance 如何在MATLAB中对监控数组中每个元素的代码进行矢量化?,performance,matlab,vectorization,nested-loops,Performance,Matlab,Vectorization,Nested Loops,假设我有一个1x2823向量,如: a = [100 223 445 0 99 0 0 123 45 0 67 89 0 55 0 ........ 0 212]; 请注意,向量只是一个示例。 我想要一段代码只针对大于eps且小于DATA NULL的元素执行(两个常量值) 如何将其矢量化? 我知道我可以有一个循环,分别监视a的每个元素,然后将代码写入if语句中。 但是这个循环将在一个更大的循环中,我不想使用嵌套循环。这取决于您想做什么,但假设您想重新分配这些值: a((a>eps)&am

假设我有一个1x2823向量,如:

a = [100 223 445 0 99 0 0 123 45 0 67 89 0 55 0 ........ 0 212];
请注意,向量只是一个示例。
我想要一段代码只针对大于eps且小于DATA NULL的元素执行(两个常量值) 如何将其矢量化?
我知道我可以有一个循环,分别监视
a
的每个元素,然后将代码写入
if
语句中。

但是这个循环将在一个更大的循环中,我不想使用嵌套循环。

这取决于您想做什么,但假设您想重新分配这些值:

a((a>eps)&(a<DATA_NULL))=NewValue;
a((a>eps)和(a)
AbsOfConditionala=abs(a((a>eps)&(a<DATA_NULL)));