Ваша проблема в том, что find(pH_fine == pH_labvals(i))
в правой части иногда не находит любого соответствия и возвращает пустой результат для индекса, в частности, вектор строки 1 на 0.Это не соответствует размеру левой стороны, которая индексирует элемент 1 на 1 из вашего вектора index_labvals
.
. Сначала необходимо проверить, если результат find
пусто и решите, что вы будете помещать в индексный вектор в этом случае, например, 0 или NaN
.Вам также нужно будет разобраться с find
, что даст вам вектор индексов, если pH_labvals
имеет такое же повторное значение.Если вы просто хотите удалить повторяющиеся значения, вы можете использовать unique
примерно так:
pH_labvals = unique(pH_labvals, 'stable');
Если вам интересно почему вы получаетепустой результат из find
, вы должны прочитать этот пост об опасностях сравнения с плавающей точкой.Одно из возможных решений, при условии, что pH_labvals
содержит неповторяющиеся значения с точностью до 2 десятичных знаков, - это сначала округлить ваш pH_fine
вектор до 2 десятичных знаков:
pH_fine = round(pH(1):0.01:pH(end), 2);
Этодолжно позволить вам избежать ошибок сравнения с плавающей точкой.