If statement doesn't return base case
1 view (last 30 days)
Show older comments
Hey. I've tried doing some simple code to speed up my calculations. Here it is:
function result = pressure(inp)
if (inp < 25)
result = 1;
else
result = 1.*abs((log(100./inp)/(log(4))));
end
end
It works if I execute single numbers, but when I use it when I'm passing a bunch of numbers it breaks. If I pass a 1:1:100 matrix it doesn't use the base case anymore for any number under 25. Any ideas?
0 Comments
Answers (2)
KSSV
on 4 Jun 2020
Edited: KSSV
on 4 Jun 2020
inp = 1:100 ;
result = zeros(size(inp)) ;
result(inp<25) = 1 ;
result(inp>=25) = abs((log(100./inp(inp(>=25)))/(log(4))));
You cannot use that function, if you give input as an vector. If you want for vector, either follow the above procedure or run a loop for each inp.
0 Comments
madhan ravi
on 4 Jun 2020
Edited: madhan ravi
on 4 Jun 2020
result = (inp < 25) + abs((log(100./inp)/log(4))) .* (inp>=25)
0 Comments
See Also
Categories
Find more on Graphics Object Programming in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!