Tôi đang cố gắng viết chức năng ghi nhật ký tổng quát cho tất cả các tham số đầu vào được chuyển đến một hàm trong MATLAB. Có thể dễ dàng chuyển tất cả các tham số đầu vào đến một hàm khác mà không cần đặt tên riêng cho các tham số không? Trong hàm ghi nhật ký, tôi có thể sử dụng inputname(i)
trong vòng lặp for để lấy tên tham số. Tôi không muốn thực hiện logic này trong chức năng chính. Vì vậy, có cách nào để làm một cái gì đó như LogParams(allInputParams)
?Tham số chức năng ghi nhật ký trong MATLAB
5
A
Trả lời
8
Có vẻ như bạn có chức năng chính, và từ chức năng đó bạn muốn gọi hàm LogParams
để nhận danh sách tên của các biến được chuyển đến hàm chính. Dưới đây là một cách để bạn có thể thực hiện chức năng của bạn LogParams
:
function names = LogParams
names = evalin('caller','arrayfun(@inputname,1:nargin,''UniformOutput'',0)');
end
Sản lượng trở về từ LogParams
sẽ là một mảng ô chứa tên của các biến truyền cho hàm mà các cuộc gọi LogParams
. Giải pháp trên sử dụng các chức năng sau:
- EVALIN: để đánh giá biểu thức trong không gian làm việc của chức năng gọi.
- ARRAYFUN: thay thế cho vòng lặp for.
- NARGIN: để nhận được số đối số được chuyển đến một hàm.
- INPUTNAME: để lấy tên của biến đầu vào.
Như một minh hoạ về cách LogParams
công trình, tạo ra các chức năng sau đó gọi nó là:
function main_function(a,b,varargin)
disp(LogParams);
end
và bây giờ gọi nó với một số nguyên liệu đầu vào (giả sử các biến x
, y
, và z
được định nghĩa trong không gian làm việc):
>> main_function(x,y)
'x' 'y'
>> main_function(x,y,z)
'x' 'y' 'z'
>> main_function(x,y,z,z,z,z)
'x' 'y' 'z' 'z' 'z' 'z'
Các vấn đề liên quan
- 1. Ghi nhật ký với nhiều tham số
- 2. Kiểm soát chức năng ghi nhật ký trong hadoop
- 3. Tắt ghi nhật ký cho mỗi phương thức/chức năng?
- 4. Chức năng MATLAB trong C++
- 5. Tham số chức năng GetStringUTFChars
- 6. "này" trong tham số chức năng
- 7. Chuỗi trong tham số chức năng
- 8. MATLAB- chuyển một tham số xử lý chức năng vào một hàm khác làm xử lý
- 9. cách bật tính năng ghi nhật ký gói trong log4j
- 10. Ghi đè chức năng JavaScript trong khi tham khảo
- 11. cách thêm nhiều chức năng trong MATLAB
- 12. Ghi nhật ký Python.DEBUG không ghi nhật ký
- 13. Ghi nhật ký/giám sát tất cả các cuộc gọi chức năng từ một ứng dụng
- 14. tắt tính năng ghi nhật ký apache vào access.log
- 15. loại tham số chức năng và =>
- 16. Gọi chức năng ghi đè từ chức năng ghi đè
- 17. C# enums là tham số chức năng?
- 18. Tham số và chức năng ngầm định
- 19. Tìm Tham số Chức năng Dll
- 20. Tham số cho chức năng tìm kiếm
- 21. mẫu template chức năng tham số
- 22. Làm chức năng mẫu tham số unsigned trong C++ 11
- 23. Ghi nhật ký xoắn
- 24. Ghi nhật ký NSNotifications
- 25. Ghi nhật ký với Vala
- 26. JNI: Đi qua nhiều tham số trong chữ ký chức năng cho GetMethodID
- 27. Chức năng ghi đè với các tham số kiểu phụ thuộc vào đường dẫn
- 28. Nhiều tham số trong một tham số (chức năng) trong C/C++
- 29. Độ phức tạp của chức năng nhật ký là gì?
- 30. Thuật toán ghi nhật ký
Rất gọn gàng! .......... (dấu chấm đến từ 15 ký tự) –
Cảm ơn. Những sự giúp đỡ đó. –
+1 cho tác động tối thiểu đến chức năng gọi. – Marc