Вывести первый индексный номер массива для определенного значения - PullRequest
0 голосов
/ 21 февраля 2020

sy - массив 1x501, имитирующий вертикальное смещение при движении снаряда. Чтобы отобразить порядковый номер первого значения, опускающегося ниже -4, я должен sh. Примером может быть:

sy = [0.1  0.3  0.7  1.0  0.7   0.2  -1.0  -3.2  -4.1  -5.3  -6.0];

Мне нужен метод для отображения порядкового номера 9 , -4.1 - это первое значение, которое упадет ниже -4.

Ответы [ 2 ]

1 голос
/ 21 февраля 2020

Сравните каждый элемент от sy до -4, чтобы найти, какие из них ниже -4: sy < -4. Это возвращает логический (логический) массив того же размера, что и sy. Затем используйте find, чтобы получить индекс первого элемента, который имеет значение true:

find(sy < -4, 1)
0 голосов
/ 21 февраля 2020
data = sy(t)
threshold = -4
idx = 0
for i = 1:length(data)
    if data(i) < threshold
        idx = i
        break
    end
end
if idx = 0
    display("Condition not met!")
else
    display("First instance found at index " + idx)
end

Или, что еще лучше, используйте find.

data = sy(t)
threshold = -4
idx = find(data < threshold,1)
if length(idx) = 0
    display("Condition not met!")
else
    display("First instance found at index " + idx)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...