2010-03-31 38 views
6

Trong MATLAB, khi bạn nhấp vào File -> New -> Chức năng M-File, bạn nhận được một tập tin với các nội dung sau:Làm thế nào để ghi đè lên các văn bản mặc định trong MATLAB

function [ output_args ] = Untitled(input_args) 
%UNTITLED Summary of this function goes here 
% Detailed explanation goes here 


end 

Có thể ghi đè này hành vi và chỉ định văn bản của riêng bạn?

(Động lực là tôi đang cố gắng để thuyết phục các đồng nghiệp của tôi để ghi lại m-file của họ triệt để hơn, và có văn bản mặc định cho họ để điền vào có thể khuyến khích họ.)

+0

Phiên bản MATLAB nào? – Jacob

+0

@Jacob: Nó hoạt động trong «R2008b' (và sau này), nhưng không có trong« R2007b'. Tôi đã không có 'R2008a' tiện dụng để kiểm tra. –

+0

Đó là số âm trên R2008a. – Adrian

Trả lời

6

Tôi thậm chí không biết File-> New-> Chức năng đã làm điều đó.

Con đường tôi giải quyết vấn đề này là để viết một chức năng mà bạn gọi qua

>>newFunction myNewFunctionName 

Nó sau đó

  1. bật lên một cửa sổ inputdlg, mà yêu cầu người dùng cho các tóm tắt và H1 dòng và cho phép đã viết trợ giúp để giải thích các đối số đầu vào và đầu ra. Ở đó, người dùng cũng chọn xem myNewFunctionName là một hàm hay một lớp để chọn tiêu đề phải và 'gọi hàm'
  2. kiểm tra xem một hàm có cùng tên đã tồn tại chưa
  3. yêu cầu một thư mục để lưu hàm và
  4. mở chức năng trong trình soạn thảo

Phần header được thiết lập để nó dễ dàng để điền vào thông tin về đầu vào và đầu ra. Nó cũng tự động liệt kê tên người dùng của người đã tạo tệp cũng như ngày và phiên bản Matlab.

EDIT Đối với các lớp học mới, mẫu chức năng tự động làm cho chắc chắn rằng họ phân lớp lớp cha chung của tôi mà thực hiện các phương pháp như 'giúp đỡ' (trong đó kêu gọi doc(class(obj)))

Bây giờ nếu mẫu functionwould cũng viết các thuật toán một phần của chức năng, nó sẽ thực sự thuận tiện. :)

EDIT2 Here 's liên kết đến chức năng trao đổi tệp.

+0

Cảm ơn, đó là một giải pháp khá mới lạ. Có thể một GUI chức năng-writer có thể thực hiện điều này một cách độc đáo. Tôi cảm thấy điều quan trọng là không đánh giá thấp tính lười biếng/hận thù của yếu tố tài liệu. Nó vẫn còn có vẻ nỗ lực nhiều hơn là nhấp vào File-> New-> Function-with-stuff-writing-for-me. –

+0

@Richie Cotton: chức năng được gọi là 'codeTemplate myNewFunction' và sau đó yêu cầu người dùng nhập thêm thông qua inputdlg. Tôi yêu cầu dòng H1 để có một số tài liệu tối thiểu – Jonas

+0

@Richie Cotton: Tôi đã cập nhật câu trả lời của mình một chút. Tôi không nghĩ rằng điều này là tham gia nữa hơn là nhấp vào File-> New-> Chức năng, mặc dù bạn có thể bỏ qua bước nơi cửa sổ hộp thoại bật lên. Tuy nhiên, khác với yêu cầu dòng H1, nó thực sự là ít làm việc hơn mặc định Matlab, vì bạn không cần phải thay thế 'untitled' bằng 'myFunctionName' ở khắp mọi nơi. – Jonas

2

Tôi khuyên bạn nên tạo mẫu m-file mặc định của riêng mình, được gọi là default.m chẳng hạn và đặt nó vào một thư mục trên nơi đồng nghiệp của bạn có thể truy cập. Sau đó, bạn nên đặt tệp thành chỉ đọc. sau đó các đồng nghiệp của bạn có thể thực hiện bất kỳ một trong các lệnh sau trong cửa sổ MATLAB lệnh khi họ muốn tạo một hàm mới m-file:

open default.m 
open('default.m') 
edit default.m 
edit('default.m') 

Các chức năng OPENEDIT sẽ mở một tập tin trong trình soạn thảo MATLAB. Vì tệp default.m là chỉ đọc, nếu có ai đó cố gắng lưu nó, họ sẽ nhận được một hộp thoại cảnh báo họ và yêu cầu họ lưu vào một tệp mới (hoặc ghi đè lên nó). Điều đó sẽ giữ cho chúng khỏi vô tình sửa đổi mẫu.

+0

@gnovice: Tôi thích rằng điều này không xâm phạm và điều đó thật dễ dàng. Nó có những bất lợi của yêu cầu người sử dụng để tự điền vào tất cả mọi thứ mặc dù. –

1

Tôi đã tìm kiếm qua tất cả các tệp văn bản bắt đầu từ thư mục matlabroot, nhưng không thể tìm thấy mẫu đó. Có vẻ như nó được mã hóa cứng, điều đó thật kì lạ.

Tôi thích Jonas approach. Như hai xu của tôi, bạn có thể tải về một chức năng (không phải của tôi) làm những việc tương tự với một số tùy chỉnh từ here.

+0

@yuk: Liên kết thứ hai bị chặn bởi bộ lọc internet của tôi, tự xưng là phần mềm độc hại; bạn có chắc nó đúng không? –

+0

@Richie: Được mở ok từ công việc và nhà của tôi. Đó chỉ là một blog của Matlab: http://msbs.ca/matlab/ – yuk

+0

Chỉ là một bộ lọc quá mức trong công việc; nó mở tốt ở nhà. Việc sử dụng 'com.mathworks.mlservices.MLEditorServices.newDocument (str)' để đưa khuôn mẫu trực tiếp vào trình soạn thảo là thú vị. –

0

Sau khi cân nhắc kỹ hơn, tôi đã đưa ra một giải pháp mà tôi hài lòng, kết hợp các câu trả lời của Jonas và gnovice. Đó là một hàm tạo một tệp m mới (với tài liệu mẫu) và mở nó trong trình soạn thảo. Nó có sẵn từ Matlab Central File Exchange.

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