Khi bạn có một hàm có số lượng đối số thay đổi (như ndgrid), làm cách nào bạn có thể chuyển danh sách đối số tùy ý cho hàm đó?Làm thế nào tôi có thể vượt qua một tập hợp các số đối số không xác định cho một hàm trong MATLAB?
Ví dụ tôi muốn làm cho nó để đôi khi tôi vượt qua hai vectơ để ndgrid và nhận ra hai ma trận, tức là,
[X1,X2] = ndgrid(x1,x2);
Nhưng lần khác tôi có thể có nhiều của X, vì vậy tôi sẽ muốn
[X1,X2,X3,X4] = ndgrid(x1,x2,x3,x4)
- có bất kỳ loại cấu trúc có thể sử dụng để lưu trữ một danh sách của một số không rõ các đối số và sau đó chỉ cần cung cấp cho rằng danh sách để một chức năng? Và,
- Có cách nào để lấy tất cả các kết quả đầu ra từ một hàm, khi bạn không biết có bao nhiêu kết quả sẽ có?
một cách nhanh chóng và dơ bẩn sẽ được trừu tượng đầu vào và đầu ra lên một trình độ của bạn ("chiều") và mất một mảng đầu vào và đầu ra một mảng - đó là [X] = ndgrid (x) trong đó X và x là mảng ô hoặc thứ gì đó, với mỗi phần tử là phần tử đầu vào thực tế –
Tôi không đủ thông thạo, tuy nhiên, để xác định rõ ràng nếu MATLAB có ' varargs' loại chức năng (Tôi chắc chắn nó làm như nó có thể biên dịch thành C) –
oh nó đáng kể đơn giản: http://www.mathworks.com/help/matlab/ref/varargin.html –