Проверьте, соответствуют ли строки требованиям в Matlab - PullRequest
0 голосов
/ 23 июня 2018

У меня есть такие функции подряд

...
|  2  |  2.3  |  14  |  1050  |  6  |  500  |  300  |  1500  |
...

У меня есть верхняя и нижняя границы.Как проверить, соответствует ли мой ряд этим границам?

Ответы [ 3 ]

0 голосов

Как насчет этого?

upper_bounds = rand(1, 10) %random upper bound
lower_bounds = upper_bounds/5 %random lower bound    
row = rand(1, 10) %random row
% answer
satisfied = (row < upper_bounds & row > lower_bounds)

Вывод:

upper_bounds =

    0.1067    0.9619    0.0046    0.7749    0.8173    0.8687    0.0844    0.3998    0.2599    0.8001


lower_bounds =

    0.0213    0.1924    0.0009    0.1550    0.1635    0.1737    0.0169    0.0800    0.0520    0.1600


row =

    0.4314    0.9106    0.1818    0.2638    0.1455    0.1361    0.8693    0.5797    0.5499    0.1450


satisfied =

     0     1     0     1     0     0     0     0     0     0
0 голосов
/ 24 июня 2018

Я нашел проблему. Я проверил, что происходит, когда я

A <= lb & A >= ub

Я получил матрицу 8х8, которая мне не нужна. Я переставил lb и ub, так что в итоге я получил матрицу 1x8 (0 | 1), которая решала мою проблему.

Спасибо всем за вклад!

0 голосов
/ 23 июня 2018

Предполагая, что ваши верхняя и нижняя границы соответственно сохраняются в upper_bound и lower_bound:

satisfies_upper_bound = (max(features) < upper_bound);
satisfies_lower_bound = (min(features) > lower_bound);
is_acceptable = (satisfies_upper_bound & satisfies_lower_bound);

Надеюсь, это поможет!

...