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

7 ビュー (過去 30 日間)
wafa mezzi
wafa mezzi 2021 年 5 月 11 日
コメント済み: Walter Roberson 2021 年 5 月 12 日
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 件のコメント
DGM
DGM 2021 年 5 月 11 日
編集済み: DGM 2021 年 5 月 11 日
The error message says there's a problem with the size or orientation of arrays, but nobody can know how your arrays are sized or oriented unless you tell us.
% 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);
Z=griddata(speedRPM,TorqueNm,EffeciencyPer,X,Y);
contourf(X,Y,Z);
colorbar;
wafa mezzi
wafa mezzi 2021 年 5 月 11 日
HI i'm atteching the excel files here could you check them please ?

サインインしてコメントする。

回答 (1 件)

Walter Roberson
Walter Roberson 2021 年 5 月 11 日
編集済み: Walter Roberson 2021 年 5 月 11 日
% 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 件のコメント
wafa mezzi
wafa mezzi 2021 年 5 月 12 日
thank you so much !
but could you explain how you solved this issue please just in case i get new arrays for new measurments how to determine their sizes in order to avoid this error repeating
Walter Roberson
Walter Roberson 2021 年 5 月 12 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by