Why won't CheckStatus(1, 1) return 0?
3 views (last 30 days)
Show older comments
function onTime = CheckStatus(noTraffic, gasEmpty)
% Assign onTime with true if noTraffic is true and gasEmpty is false
onTime = noTraffic(true), gasEmpty(false);
end
3 Comments
Jan
on 6 Oct 2017
Edited: Jan
on 6 Oct 2017
You can either set a breakpoint in the editor, or type "dbstop CheckStatus" in the command window, not inside the code. Please read the documentation instead of guessing: https://www.mathworks.com/help/matlab/matlab_prog/debugging-process-and-features.html
Answers (1)
Guillaume
on 6 Oct 2017
Edited: Guillaume
on 6 Oct 2017
Before reading the documentation of dbstop, I'd say read the getting started tutorial of matlab or any introductory book.
I have no idea where the syntax for the line
onTime = noTraffic(true), gasEmpty(false);
came from. Certainly not from any matlab introductory course. The above does not check "if noTraffic is true", it does not check if "gasEmpty is false", and it certainly does not "and" any condition.
The above assigns the first element (since true is the same as 1) of noTraffic to onTime. The comma is equivalent to a line return, it just starts a new statement. That new statement accesses the 0th element of gasEmpty (since false is the same as 0). This will always error since matrix indexing starts at 1 in matlab. Even if did not error, nothing more would be done with that element, it would not be assigned to anything.
Testing if something is true of false is done using comparison operators. The result of such comparisons can then be linked using logical operators.
0 Comments
See Also
Categories
Find more on Satellite Mission Analysis 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!