MATLAB: Output argument “T” ( ) not assigned during call to ” “.

argumentduplicate post requiring mergingerrorfunctionMATLABnot assigned during calloutputoutput argument

I am using one function that calls using two others. Here are the functions. I would like to use V as a set of numbers.
function mach_number=mach(V);
mach_number=(V.*10.^3)./(sqrt(1.40.*287.*(temp_alt(alt_velo(V)))));
end
function alt=alt_velo(V);
alt=((.0389*V.^5)-(.8115*V.^4)+(6.537*V.^3)-(25.45*V.^2)+(53.425*V)+3.8234)*(10.^3);
end
function T=temp_alt(h);
if (h >= 25000)
T=(-131.21+.00299.*h)+273.15;
elseif (11000 < h) & (h < 25000);
T=(-56.46+273.15);
elseif (h <= 11000);
T=(15.04-(.00649.*h))+273.15;
end
end
The function mach works when I enter mach(1:1:10) in the command window but when I do mach(.001:.001:1) I get the error below, I do not understand why. Please help.
>>mach(1:1:10)
ans =
Columns 1 through 5
3.12868748903117 5.86169984416974 8.53906953938449 11.0917563079045 13.5302732555593
Columns 6 through 10
15.907404087981 18.006585285012 18.997273867173 17.9653322339638 15.3656938914863
>> mach(.001:.001:1)
Error in temp_alt (line 12)
if (h >= 25000);
Output argument "T" (and maybe others) not assigned during call to "temp_alt".
Error in mach (line 12)
mach_number=(V.*10.^3)./(sqrt(1.40.*287.*(temp_alt(alt_velo(V)))));

Best Answer

See if this construction works for you:
temp_alt = @(h) [((15.04-(.00649.*h))+273.15).*(h<=11000) + (-56.46+273.15).*((11000 < h) & (h < 25000)) + ((-131.21+.00299.*h)+273.15).*(h>=25000)];
Related Question