MATLAB: Plot contour with 3 variables

MATLABplot

Hi!
I'm running a simulation in AVL in order to make an engine performance map. For that I have the values of 1- engine speed, 2-BMEP and 3-BSFC as output. I've organized them in a 17×3 matrice. I pretend to do a contour plot with engine speed as x, BMEP as y and BSFC as z.

Best Answer

The contour function requires matrices. You will need to create the matrices from your vectors.
Try this (with your actual data):
x = [7 6.5 6 5.5 5 4.8 4.5]*1E3; % Extract From Image


y = [8.06 8.65 9.20 9.55 9.71 8.66 9.57]; % Extract From Image
z = [320 300 290 284 275 272 268]; % Extract From Image
data = [x(:) y(:) z(:)];
xv = linspace(min(data(:,1)), max(data(:,1)), 20); % Interpolation Independent Variable Vector

yv = linspace(min(data(:,2)), max(data(:,2)), 20); % Interpolation Independent Variable Vector
[X,Y] = ndgrid(xv, yv); % Interpolation Independent Variable Matrices
Z = griddata(data(:,1), data(:,2), data(:,3), X, Y); % Interpolated Dependent Variable
figure
contour(X, Y, Z, 'ShowText','on')
grid on
xlabel('Engine Speed (RPM)')
ylabel('BMEP')
zlabel('BSFC')
title('Performance')
.