Причина, по которой вы получаете эту ошибку, заключается в том, что fplot
передает заданный диапазон сразу как вектор, обрабатывает вашу функцию как векторизованную функцию, ожидает входной вектор и возвращает векторный выход.
Вы можете подтвердить это, установив для параметра «отладка при ошибке» значение true, выполнив debug_on_error(true)
, запустив ошибочную строку и проверив x
.
Следовательно, внутри вашей функции все идет не так,потому что вы пытаетесь получить квадрат вектора, что является недопустимой операцией (математически говоря).
Преобразование вашей функции в y = x.^2
должно работать в этом случае, потому что вы будете преобразовывать каждый элемент вектора в его квадрат, что вам и нужно.Но очевидно, что простое изменение ^
на .^
может не сработать для каждой проблемы.
В общем, лучше создавать собственные «диапазоны» и «выходы» и наносить их на график напрямую, используя plot
;это дает вам гораздо больше контроля, и вы можете сначала проверить входы и выходы, чтобы убедиться, что вы выводите на экран то, что, как вы думаете, вы делаете.