Nói rằng tôi có đoạn mã sau:Có cách nào để gọi một chức năng phụ trong khi ở chế độ di động trong MATLAB?
% Cellmode_subfunction_test.m
%% Cell 1
foo(1);
%% Cell 2
foo(2);
%% Definition of the foo subfunction
function foo(num)
disp(['num=' num2str(num)]);
Làm thế nào có thể kiểm tra tế bào 1 và tế bào 2 với subfunction quy định tại cuối cùng?
Chỉnh sửa: Về cơ bản, mỗi ô trong ví dụ này thực hiện một số phép tính dài vì vậy tôi muốn kiểm tra và gỡ lỗi chúng một cách riêng biệt. Tôi đang sử dụng các hàm con để trừu tượng hóa và sử dụng lại chức năng phổ biến và cho đến nay chức năng này chỉ được sử dụng trong ứng dụng cụ thể này, tôi thực sự không muốn đặt foo trong một tệp m riêng biệt.
Chỉnh sửa (2): Tôi chỉ nhớ rằng tôi mơ hồ nhớ lại chế độ di động chỉ hoạt động trong tập lệnh MATLAB và không có trong các tệp m và chức năng con và hàm lồng nhau không được phép trong các tập lệnh đó. Vì vậy, những gì tôi yêu cầu có lẽ là không thể.
Mặc dù giải pháp chức năng ẩn danh được đưa ra dưới đây có lẽ hơi hạn chế vì nó chỉ cho phép các hàm biểu thức đơn, thực tế là đủ cho những gì tôi muốn làm và do đó tôi đã chấp nhận giải pháp cho vấn đề của mình.
Rất tiếc, tôi không thể trợ giúp thêm. Chỉ cần rõ ràng hơn, bạn có muốn thêm các hàm con vào một tệp m, tệp này sẽ chỉ được sử dụng bởi tệp m đó và bạn không muốn tạo một tệp m hoàn toàn mới không? – gnovice
Chỉnh sửa thứ hai của bạn làm rõ mọi thứ. Đó là sự thật, trong tập tin kịch bản bạn không thể có các chức năng con hoặc hàm lồng nhau. Các hàm ẩn danh là cách duy nhất để đi với các tập lệnh. Tùy chọn duy nhất khác là lưu foo dưới dạng tệp riêng biệt. – gnovice