【问题标题】:how to apply a function to all rows in a matrix? [duplicate]如何将函数应用于矩阵中的所有行? [复制]
【发布时间】:2013-11-11 06:49:14
【问题描述】:

以函数“norm”为例。我有一个矩阵,我想对矩阵中的每一行应用“范数”,并得到这个矩阵中每一行的所有范数的向量。

我希望我可以做 norm(A, 'rows'),但那是不可能的。还有其他方法吗?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    像这样?

    M = 1e4;
    N = 1e3;
    A = randn(M, N);
    
    % Solve
    B = mat2cell(A, ones(M, 1), N);
    b = cellfun(@norm, B);
    

    也许可以使用 arrayfun 代替?

    【讨论】:

      【解决方案2】:

      无需转换为元胞数组即可:

      arrayfun(@(n) norm(A(n,:)), 1:size(A,1))
      

      【讨论】:

      • +1 比转换为单元格更容易且明显更快。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-13
      • 2019-04-20
      • 1970-01-01
      • 2020-01-16
      • 2012-11-02
      • 2016-02-20
      • 2020-12-17
      相关资源
      最近更新 更多