MATLAB Answers

how to solve "error using griddata" in order to plot an efficiency map

1 view (last 30 days)
wafa mezzi
wafa mezzi on 11 May 2021
Commented: Walter Roberson on 12 May 2021
hello i'm trying to plot an efficiency map of a motor using vectors of torque and speed and their corresponding efficiencies obtained from some measurments is it possible to plot efficiency map with this?
ps: the vectors are loaded from an excel file
I'm trying to plot somthing similar with this script
x0=min(speedRPM); x1=max(speedRPM); nx=100;
y0=min(TorqueNm); y1=max(TorqueNm); ny=100;
x=linspace(x0,x1,nx);
y=linspace(y0,y1,ny);
[X,Y]=meshgrid(x,y);
Z=griddata(speedRPM,TorqueNm,EffeciencyPer,X,Y);
contourf(X,Y,Z);
colorbar;
But when i run it it shows me this error
>> efficiencymap
Error using griddata (line 110)
X and Y must be same length as Z or the lengths of X and Y must match the size of Z.
could you help ?
  2 Comments

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 11 May 2021
Edited: Walter Roberson on 11 May 2021
% test arrays have corresponding size
speedRPM = 1:200; % 1x200
TorqueNm = 1:100; % 1x100
EffeciencyPer = speedRPM + TorqueNm'; % 100x200
% all this code runs just fine with test arrays
x0=min(speedRPM); x1=max(speedRPM); nx=100;
y0=min(TorqueNm); y1=max(TorqueNm); ny=100;
x=linspace(x0,x1,nx);
y=linspace(y0,y1,ny);
[X,Y] = meshgrid(x,y);
F = scatteredInterpolant(speedRPM, TorqueNm, EfficiencyPer);
Z = F(X, Y);
contourf(X, Y, Z.'); %probably Z.', perhaps Z instead
  4 Comments
Walter Roberson
Walter Roberson on 12 May 2021
You do not need to determine their size. nx and ny are arbitrary; the higher they are, the smoother the plot will be, but the longer it will take to compute.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by