Top.Mail.Ru
Ответы

Вопрос по MATLAB

только начал самостоятельно изучать матлаб, так вот задачка возникла построить график функции f(x)=cos(x^2+1) на интервале [-10,10] с шагом 0.2.
Ну вот я ввожу сначала значения x : x=-10:0.2:10;
а затем вывод графика : plot(x,cos(x*x+1)) ,но после этого выскакивает ошибка - Error using ==> mtimes
Inner matrix dimensions must agree.
Подскажите в чём ошибка и как её устранить, буду благодарен.

Дополнен

Спасибо всем, всё работает)

По дате
По рейтингу
Аватар пользователя
Новичок
12лет

Если вы указываете перемножение как *, то матлаб ожидает, что вы перемножаете два вектора или матрицы по соответствующим правилам (соответственно там есть требования к размерностям, о чем вам ошибка и сообщает) . Это автоматически работает для скаляров (как вектор с одним элементом) .
Если же вы хотите просто перемножить элементы матрицы и векторов между собой (элемент с одним индексом с элементом другого вектора с тем же индексом) , то вместо * надо писать .* (поставить точку перед действием)

получится
plot(x, cos(x .* x + 1))

можно записать и как
plot(x, cos(times(x, x) + 1))

Аватар пользователя
Мыслитель
12лет

x это вектор, ты умножаешь его на вектор, попробуй написать умножение по-другому x.*x