假設我有一個向量A=[a1 a2 a3 ... an]和一個已定義的函式句柄f=@(x1,x2,x3,..,xn),如何在不顯式寫入的情況下將向量輸入到函式句柄中f(A(1),A(2),...,A(n))?我寫的代碼n針對不同的情況給了我不同的,手動輸入函式引數是不切實際的,因為它是可變大小的。
示例:我可能會得到f=@(x,y)(x^2 y^2)和A=[1 2],我可以說f(A(1),A(2))我的問題已經解決,但前提是我有兩個變數。如果我有f=@(x,y,z)(x^2 y^2 z^2)和A=[1 2 3],我應該寫f(A(1),A(2),A(3))。
這可能會被改寫為如何按照我想要的方式控制函式句柄中“插槽”的數量?
uj5u.com熱心網友回復:
你可以通過一個單元陣列
% Convert input array to a cell
A = num2cell( A );
% Deal the cell array to the inputs of f
f( A{:} );
或者你只是撰寫你的函式,以便它索引一個陣列,而不是依賴多個標量,即f=@(x,y)x y;變成f=@(z)z(1) z(2);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/323490.html
