【发布时间】:2014-03-06 01:02:45
【问题描述】:
我在 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.
我该如何正确地做到这一点?
【问题讨论】:
-
你为什么要制作一个单元格?只需使用双数组参数直接调用函数即可。
-
你为什么不做 A * [x1, x2, ... , xn],其中 x 是列向量..?它会给出你想要的:[b1, b2, ..., bn]...
-
实际上,我的问题并不像我提出的问题那么简单。我有一大堆函数,每个函数都以一个矩阵和一个列向量作为输入。我想在我的矩阵和向量上应用每个函数并将结果累积到一个矩阵中。
标签: matlab anonymous-function cell-array function-handle