код, который вы опубликовали, НЕ работает идеально - вам просто повезло с комбинацией чисел, которую вы выбрали;).
Просто посмотрите на сравнение значений в объявлении elseif, которое вы разместили, и вы увидитечто этот код не работает должным образом.
переключите эту строку:
elseif (x(i,1)<y(p,1))&&(y(p,1)<x(i+1,1))
на:
elseif ((y(p,1)<x(i+1,1)&&x(i,1)<y(p,1)))
Это потому, что matlab оценивает первое выражение воператор, и если он ложный, он не проверяет второй оператор - поэтому вы не получите ошибку, так как первый statemaent в вашем коде для последних элементов равен false 8 <7.3 </p>
Ошибка, которой вы являетесьЭто происходит потому, что вы пытаетесь получить доступ к элементам из индекса матриц.
У вас есть матрица 3x3 и вы пытаетесь получить доступ к элементу (4,1) в последнем цикле цикла for.Та же проблема с матрицей у.