2010-02-08 3 views
11

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

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

if nargin<1, 
    % code 
end 

if isError, 
    % code 
end 

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

ответ

15

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

1

Я думаю, что запятая в MATLAB, как точка с запятой в С. отделяющей команды, так что вы можете поместить несколько команд в одной строке, разделенных запятыми.

Способ написания вашей программы, я считаю, что запятые не имеют значения.

4

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

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

+0

Но если есть разрыв строки, это просто лишнее, правильно? –

+0

@Benjamin Да. @Albert вы также иногда видите 'try ,, catch' и' for ,, end' в той же строке. – KitsuneYMG

8

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

enter image description here

>> mlint comma_test.m 
L 1 (C 4): Extra comma is unnecessary. 
+2

Ха-ха, я думаю, это то, что вы получаете за использование 'vim' для редактирования кода Matlab ... У меня было что-то, чтобы использовать MLINT. Возможно, вам придется попробовать это сейчас. –

Смежные вопросы