簡體   English   中英

將函數句柄應用於多個輸入參數

[英]Apply Function Handle to Multiple Input Arguments

我在MATLAB中定義了一個矩陣和一個向量:

A=rand(3);
x=rand(3,1);

還有一個采用以下類型的輸入參數的函數:

b = MacVecProd(A,x);

但是,我想使用此函數的函數句柄以將其應用於我的值。 我以為可以為此使用cellfun ,但是:

v = {A,x};
cellfun(@MatVecProd_a, v{:})

給出錯誤:

Error using cellfun
Input #2 expected to be a cell array, was double instead.

如何正確執行此操作?

您可以定義自己的特殊函數來調用具有給定參數的匿名函數,例如:

% define special function to call function handles
myfuncall = @(fh, v) fh(v{:});

% execute MacVecProd using myfuncall
b = myfuncall(@MacVecProd, v)

根據您的評論,您擁有函數數組,並且想要對輸入參數執行它們,您可以執行以下操作:

  % cell array of function handles
  myFunctioins = {@MacVecProd, @MacVecProd2, @MacVecProd3};

  % execute each function with v parameters
  % I assume you want to execute them for the same input v
  resultCell = cellfun(@(fh) fh(v{:}), myFunctioins, 'UniformOutput', 0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM