How to put unequal range of values in functon

i have made a function for getting interpolated values and in this function i want to give input of unequal range of drehzahl and drehmoment. i have attached the file of the program and its excel sheet

6 Comments

Can you explain a bit more..what do you mean by unequal range of values?
like drehzahl 1:10 Drehmoment 1:20
it works when both are same like drehzahl=drehmoment=1:10
but it shows a size error at different range of input
It will not work for that case also.....it is throwing error...
Subscript indices must either be real positive integers or logicals.
Wi=W_12(Drehmoment1-10);
in such case i can change the program but the input should be in different range Can u suggestsomething for it
Copy here a full working code with given inputs..then we can work on the issue of unequal case.
function [Kraftstoffverbrauch,Drehmoment]=Kasus_1_4(Drehzahl, Drehmoment)
[num,txt,raw] = xlsread('Mappe1.xlsx') ;
Dz = num(:,1) ; Dz(isnan(Dz))= [ ];
A = num(:,2:end) ;
A(isnan(A(:,1)),:)= [] ;
W = A(1:2:end,:) ;
Dm = A(2:2:end,:) ;
Dz1 = repmat(Dz,1,size(Dm,1)) ;
idx = ~isnan(Dm) ;
F = scatteredInterpolant([Dz1(idx) Dm(idx)],W(idx));
Wi = F(Drehzahl,Drehmoment);
Drehmoment2 = Drehmoment*3.0769*2.64;
Geschwindigkeit= (Drehzahl/(3.07*2.64))*2.037*0.06;
Kraftstoffverbrauch= (2*3.14*(Drehmoment).*(Drehzahl))./(Wi*0.98*0.8.*(Geschwindigkeit)*600);
plot3(Drehzahl,Drehmoment2,Kraftstoffverbrauch)
end
Drehzahl=1:3000
Drehmoment=100:150
the input range would be variable every time

Sign in to comment.

 Accepted Answer

function [Kraftstoffverbrauch,Drehmoment]=Kasus_1_4(Drehzahl, Drehmoment)
% Modify the dimensions
nx = length(Drehzahl) ;
ny = length(Drehmoment) ;
if nx > ny
Drehmoment = linspace(min(Drehmoment),max(Drehmoment),nx) ;
elseif nx<ny
Drehzahl = linspace(min(Drehzahl),max(Drehzahl),ny) ;
end
[num,txt,raw] = xlsread('Mappe1.xlsx') ;
Dz = num(:,1) ; Dz(isnan(Dz))= [ ];
A = num(:,2:end) ;
A(isnan(A(:,1)),:)= [] ;
W = A(1:2:end,:) ;
Dm = A(2:2:end,:) ;
Dz1 = repmat(Dz,1,size(Dm,1)) ;
idx = ~isnan(Dm) ;
F = scatteredInterpolant([Dz1(idx) Dm(idx)],W(idx));
Wi = F(Drehzahl,Drehmoment);
Drehmoment2 = Drehmoment*3.0769*2.64;
Geschwindigkeit= (Drehzahl/(3.07*2.64))*2.037*0.06;
Kraftstoffverbrauch= (2*3.14*(Drehmoment).*(Drehzahl))./(Wi*0.98*0.8.*(Geschwindigkeit)*600);
plot3(Drehzahl,Drehmoment2,Kraftstoffverbrauch)
end

More Answers (0)

Categories

Tags

Community Treasure Hunt

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

Start Hunting!