2016-10-22 6 views
0

Я хочу нарисовать контур для заданной функции.Matlab Contour Drawing

Моя функция f = transpose([5;5])*[X;Y] + transpose([X;Y])*[2 3; 4 2]*[X;Y]/2;, и я хочу нарисовать контур для значений X и Y от -100 до 100. Как я могу это сделать? Когда я создаю linspace для X и Y, я получаю ошибку соответствия размера. Я могу получить одно значение для функции, но не могу рисовать график. Спасибо

ответ

0

Ошибка соответствия размера, означает, что размеры не соответствуют правилам алгебры.

Предположим:

X = -100:100; 
Y = -100:100; 

size(transpose([X;Y])*[2 3; 4 2]*[X;Y]/2)
ans =
201 201

size([X*5;Y*5])
ans =
2 201

Вы не можете суммировать матрицу 2x201 с матрицей 201x201.

Следующий код работает (размер F является 2x201):

f = [X*5;Y*5] + (([X;Y])'*[2 3; 4 2])'.*[X;Y]/2; 

I'am не уверен, что если приведенная выше формула дает результат, который вы хотели.