當你有一個函數需要一個可變數量的參數(如ndgrid)時,如何將任意參數列表傳遞給該函數?如何將一組未知數量的參數傳遞給MATLAB中的函數?
比如我想讓它這樣,有時我通過兩個向量來ndgrid,並得到了兩個矩陣,即
[X1,X2] = ndgrid(x1,x2);
但其他時候,我可能有更多的X的,所以我想
[X1,X2,X3,X4] = ndgrid(x1,x2,x3,x4)
- 有什麼樣的結構,我可以用它來存儲一個參數數目未知的列表,然後只給該列表的功能?而且,
- 有沒有辦法從函數中檢索所有的輸出,當你不知道會有多少?
一個快速和骯髒的方法是抽象的輸入和輸出一個電平(「尺寸」),並利用輸入陣列和輸出一個數組 - 也就是[X] = ndgrid(x)其中X和x是單元格數組或其他東西,每個元素都有一個實際的輸入元素 –
然而,我不夠精通, varargs'類型的功能(我確信它可以編譯爲C) –
哦,它非常簡單:http://www.mathworks.com/help/matlab/ref/varargin.html –