Why won't CheckStatus(1, 1) return 0?
3 ビュー (過去 30 日間)
古いコメントを表示
function onTime = CheckStatus(noTraffic, gasEmpty)
% Assign onTime with true if noTraffic is true and gasEmpty is false
onTime = noTraffic(true), gasEmpty(false);
end
3 件のコメント
Jan
2017 年 10 月 6 日
編集済み: Jan
2017 年 10 月 6 日
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
回答 (1 件)
Guillaume
2017 年 10 月 6 日
編集済み: Guillaume
2017 年 10 月 6 日
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Satellite Mission Analysis についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!