Как найти первое появление определенного значения

#matlab

#matlab

Вопрос:

У меня есть график (y = t ^ 2), и мне нужно найти первое значение t, где y> 20

 t = 0:.01:10;
y = t.^2;
plot(t,y)
  

Ответ №1:

Второй аргумент find позволит вам указать количество возвращаемых индексов.

 find(y>20, 1)
  

Если вам нужно фактическое значение, а не индекс, просто индексируйте массив своим результатом.

 y(find(y>20, 1)) % first value in y where y>20
t(find(y>20, 1)) % first value in t where y>20
  

Комментарии:

1. Вопрос был странно сформулирован в моем домашнем задании, и на самом деле он запрашивает первый раз (значение t), где y> 20.

2. Я соответствующим образом обновил свой ответ. Вы можете произвести индексацию в y или t с результатом find .

3. Если вы вызываете find без определения количества индексов, которые вы хотите вернуть, он вернет все индексы, которые соответствуют вашему условию. Длина этого массива равна количеству раз, когда выполняется условие. В качестве альтернативы вы можете использовать что-то вроде sum(y>20) .