Undefined function 'mtimes' for input arguments of type 'matlab.ui​.control.N​umericEdit​Field' error

28 次查看(过去 30 天)
oil_SAE = app.oil_type.Value;
Temp_in = app.Inlet_Temperature.Value;
d = app.Shaft_diameter.Value;
r = app.Shaft_radius.Value;
D = app.Bushing_diameter.Value;
N = app.Shaft_speed;
W = app.Radial_load.Value;
L = app.Bearing_length.Value;
c = (D-d)/2;
C_ratio = r/c;
P = W/(2*r*L);
Slenderness = L/d;
Sommerfeld_No_Inf = xlsread ('MFT','Temperature Rise Variable','A4:A17');
Temp_rise_inf = xlsread ('MFT','Temperature Rise Variable','E4:E17');
Temperature = xlsread ('MFT','viscosity-temperature chart','A4:A30');
if oil_SAE == 10
y = xlsread ('MFT','viscosity-temperature chart','B4:B30');
elseif oil_SAE == 20
y = xlsread ('MFT','viscosity-temperature chart','C4:C30');
elseif oil_SAE == 30
y = xlsread ('MFT','viscosity-temperature chart','D4:D30');
elseif oil_SAE == 40
y = xlsread ('MFT','viscosity-temperature chart','E4:E30');
elseif oil_SAE == 50
y = xlsread ('MFT','viscosity-temperature chart','F4:F30');
elseif oil_SAE == 60
y = xlsread ('MFT','viscosity-temperature chart','G4:G30');
elseif oil_SAE == 70
y = xlsread ('MFT','viscosity-temperature chart','H4:H30');
end
%-------------------------------------------------------------------------%
% Calculation to find average temperature and viscosity %
Tf = Temp_in + 3;
app.V.Value = interp1 (Temperature,y,Tf);
app.S.Value = (C_ratio)^2*((app.V*N)/P); error: Undefined function 'mtimes' for input arguments of type 'matlab.ui.control.NumericEditField'.
if Slenderness == 1
app.delta_T.Value = (0.349109 + (6.00940*app.S)+(0.047467*(app.S^2)))*(P*(10^-6))/0.120; % Temperature Rise(°C) at l/d=1
elseif Slenderness == 1/2
app.delta_T.Value = (0.394552 + (6.392527*app.S)-(0.036013*(app.S^2)))*(P*(10^-6))/0.120; % Temperature Rise(°C) at l/d=1/2
elseif Slenderness == 1/4
app.delta_T.Value = 0.933828 + (6.437512*app.S)- (0.011048*(app.S^2))*(P*(10^-6))/0.120; % Temperature Rise(°C) at l/d=1/4
else
app.delta_T.Value = (interp1 (Sommerfeld_No_Inf,Temp_rise_inf,app.S))*(P*(10^-6))/0.120; % Temperature Rise(°C) at l/d=Infinity
end
app.T_average.Value = Temp_in + (app.delta_T.Value/2);
** I got the error while running the app designer. These codes were written in callback function. Can somebody help me on how to fix this error?
  2 个评论
Jan
Jan 2019-7-26
Please use the buttons on top of the field for editing the message to format the code as code to improve the readability. Thanks.
By the way, you mix the code for the GUI handling and the computations. This will impede the maintenance of the code. If you separate the GUI part and the actual computations, it will be much easier to modify the GUI or the calculations, or use the function for the calculations in another code. Example:
% Inside the GUI code:
[V, S, Delta, T_avg] = YourCalculations(Temperature, C_ratio, y, Tf, ...
N, P, Slenderness)
app.V.Value = V;
app.S.Value = S;
... and so on
% And the calculations:
function [V, S, Delta, T_avg] = YourCalculations(Temperature, C_ratio, y, Tf, ...
N, P, Slenderness)
V = interp1(Temperature,y,Tf);
S = (C_ratio)^2 * V * N ) / P);
if Slenderness == 1
delta_T = (0.349109 + (6.00940*S)+(0.047467*(S^2)))*(P*1e-6)/0.120;
... and so on
end
end

请先登录,再进行评论。

回答(1 个)

Dennis
Dennis 2019-7-26
app.S.Value = (C_ratio)^2*((app.V.Value*N)/P);
You forgot the '.Value', the error message tells you that you can not multiply the handle of your edit field.

类别

Help CenterFile Exchange 中查找有关 Data Distribution Plots 的更多信息

标签

产品


版本

R2016a

Community Treasure Hunt

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

Start Hunting!

Translated by