필터 지우기
필터 지우기

How to plot the quadratic function surface?

조회 수: 5 (최근 30일)
Seyyed Mohammad Saeed Damadi
Seyyed Mohammad Saeed Damadi 2019년 2월 17일
답변: Naman Bhaia 2019년 2월 27일
I want to plot when . I wrote the following codes and was wondering if there is a more efficient way with less number of lines:
clc
clear
Q = [0.7750, 0.3897; 0.3897 0.3250];
b = [-2,-1];
[X,Y] = meshgrid(-5:0.1:1);
x = X(:);
y = Y(:);
sx = size(X);
n = length(x);
z = zeros(n,1);
for i = 1:n
z(i) = 0.5*[x(i,1),y(i,1)]*Q*[x(i,1);y(i,1)] - b*[x(i,1);y(i,1)];
end
X = reshape(x,sx);
Y = reshape(y,sx);
Z = reshape(z,sx);
surf(X,Y,Z)

채택된 답변

Naman Bhaia
Naman Bhaia 2019년 2월 27일
Hey Seyyed,
I was able to simplify the code by using vectorized operations instead of for loop
clc
clear
Q = [0.7750 0.3897; 0.3897 0.3250];
b = [-2 -1];
[X,Y] = meshgrid(-5:0.1:1);
x = X(:);
y = Y(:);
sx = size(X);
a=0.5*diag([x y]*Q*[x';y'])-(b*[x';y'])';
Z = reshape(a,sx);
surf(X,Y,Z)

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by