代码之家  ›  专栏  ›  技术社区  ›  Humam Helfawi

在需要矩阵行的函数上应用arrayfun

  •  0
  • Humam Helfawi  · 技术社区  · 6 年前

    function y = f(x)
         y = some_black_box_function_that_takes_only_one_row_at_once(x)
    end
    
    x = magic(15);
    y = zeros(1,15);
    for i = 1:15
        y(i) = f(x(i,:));
    end
    

    arrayfun 但它应该应用于矩阵的每一行,而不是它的每一个元素。

    P.S.编辑 some_black_box_function_that_takes_only_one_row_at_once 接受二维矩阵不是一个选项。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Will    6 年前

    对一系列非标量参数而不是数组中的每个标量元素调用函数 arrayfun 是的,使用 cellfun 相反。

    将矩阵中的每一行提取到 cellfun公司 可以作为参数传递给函数,请使用 num2cell 2

    y = cellfun(@some_black_box_function_that_takes_only_one_row_at_once, num2cell(x,2));