2010-02-08 43 views
11

Điều này rất khó tìm kiếm: các dấu phẩy cuối cùng làm gì trong Matlab? Trong một vài thử nghiệm nhỏ mà tôi đã thực hiện, chúng dường như không làm cho mã hoạt động khác nhau. Tôi muốn biết bởi vì họ đang ở trên tất cả các mã này tôi đã không viết (nhưng phải duy trì).Dấu phẩy cuối dòng nào trong Matlab?

Các ví dụ về những gì tôi có nghĩa là:

if nargin<1, 
    % code 
end 

if isError, 
    % code 
end 

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

Trả lời

15

Theo documentation for the comma character in MATLAB, một trong những chức năng của nó là để tuyên bố tách trong một dòng. Nếu chỉ có một câu lệnh trên một dòng, dấu phẩy là không cần thiết. Tôi không thích nhìn thấy nó ở đó, mặc dù tôi biết một số người viết mã theo cách đó.

1

Tôi nghĩ rằng dấu phẩy trong MATLAB cũng giống như dấu chấm phẩy trong C. Nó tách lệnh, vì vậy bạn có thể đặt nhiều lệnh trong một dòng cách nhau bởi dấu phẩy.

Cách chương trình của bạn được viết, tôi tin rằng dấu phẩy không có sự khác biệt.

4

Nếu bạn đọc các tệp m được mã hóa chặt chẽ (ví dụ: nhiều hàm MATLAB tích hợp), bạn sẽ khám phá ra một biến thể của if ... end construct được viết trên một dòng. Dưới đây là ví dụ
nếu x < 0, phân phối ('tưởng tượng'); end
Chú ý dấu phẩy giữa x < 0 và dấu (...). Rõ ràng là dấu phẩy nói với trình thông dịch MATLAB rằng thử nghiệm có điều kiện đã kết thúc. Theo hiểu biết của tôi, đây chỉ là nơi mà một câu lệnh (OK, một phần của câu lệnh) kết thúc bằng dấu phẩy. Đó chỉ là một trong những điều kỳ quặc mà những tín đồ thật sự đến để sử dụng mà không do dự.

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

+0

Nhưng nếu có một ngắt dòng, nó chỉ là không cần thiết, có đúng không? –

+0

@Benjamin Có. @Albert bạn cũng thỉnh thoảng thấy 'try ,, catch' và' for ,, end' trên cùng một dòng. – KitsuneYMG

8

Như những người khác đã chỉ ra, dấu phẩy ở cuối dòng là không cần thiết. Chúng thực sự chỉ để tách các câu lệnh trên cùng một dòng. mlint và Editor thậm chí sẽ cung cấp cho bạn một cảnh báo nếu bạn sử dụng một mà không cần nó:

enter image description here

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

Haha, tôi đoán đó là những gì bạn nhận được để sử dụng 'vim' để chỉnh sửa mã Matlab ... Tôi đã có một cái gì đó để sử dụng MLINT với nó. Có thể phải cung cấp cho một thử ngay bây giờ. –

Các vấn đề liên quan