Что делают запятые в конце строки в Matlab? - PullRequest
12 голосов
/ 08 февраля 2010

Трудно найти: что делают запятые в конце строки в Matlab? В нескольких маленьких тестах, которые я сделал, они, кажется, не заставляют код вести себя иначе. Я хотел бы знать, потому что они все в этом коде, который я не написал (но должен поддерживать).

Примеры того, что я имею в виду:

if nargin<1,
    % code
end

if isError,
    % code
end

try,
    % code
    while 1,
        % even more code
    end
catch,
    % code
end

Ответы [ 4 ]

16 голосов
/ 08 февраля 2010

Согласно документации для символа запятой в MATLAB , одна из его функций заключается в разделении операторов внутри строки.Если в строке есть только один оператор, запятая не нужна.Мне не нравится видеть это там, хотя я знаю, что некоторые люди пишут код таким образом.

8 голосов
/ 08 февраля 2010

Как уже отмечали другие, запятые в конце строки не нужны. Они на самом деле просто для разделения утверждений, которые находятся на одной строке. mlint и редактор даже выдаст вам предупреждение, если вы используете его без необходимости:

enter image description here

>> mlint comma_test.m
L 1 (C 4): Extra comma is unnecessary.
4 голосов
/ 08 февраля 2010

Если вы читаете жестко закодированные m-файлы (например, многие из встроенных функций MATLAB), вы обнаружите вариант конструкции if ... end, которая записана в одну строку. Вот пример
если x <0, disp («мнимый»); конец <br> Обратите внимание на запятую между x <0 и disp (...). Видимо запятая говорит интерпретатору MATLAB, что условный тест закончен. Насколько мне известно, это единственное место, где утверждение (хорошо, часть утверждения) заканчивается запятой. Это просто одна из тех причуд, которые истинно верующие приходят использовать без колебаний. </p>

http://web.cecs.pdx.edu/~gerry/MATLAB/programming/basics.html

1 голос
/ 08 февраля 2010

Я думаю, что запятая в matlab похожа на точку с запятой в C. Она разделяет команды, поэтому вы можете поместить несколько команд в одну строку, разделенные запятыми.

То, как написана ваша программа, я думаю, запятые не имеют значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...