gpt4 book ai didi

matlab - 如何将函数应用于 MATLAB 中矩阵的每一行/列?

转载 作者:太空宇宙 更新时间:2023-11-03 19:05:04 25 4
gpt4 key购买 nike

您可以将一个函数应用于向量中的每个项目,例如,v + 1,或者您可以使用函数 arrayfun。如何在不使用 for 循环的情况下对矩阵的每一行/列执行此操作?

最佳答案

许多内置操作,如 sumprod已经能够跨行或跨列操作,因此您可以重构您正在应用的函数以利用这一点。

如果这不是一个可行的选择,一种方法是使用 mat2cell 将行或列收集到单元格中或 num2cell , 然后使用 cellfun对生成的元胞数组进行操作。

例如,假设您要对矩阵 M 的列求和。您可以简单地使用 sum 来做到这一点:

M = magic(10);           %# A 10-by-10 matrix
columnSums = sum(M, 1); %# A 1-by-10 vector of sums for each column

下面是如何使用更复杂的 num2cell 来做到这一点/cellfun选项:

M = magic(10);                  %# A 10-by-10 matrix
C = num2cell(M, 1); %# Collect the columns into cells
columnSums = cellfun(@sum, C); %# A 1-by-10 vector of sums for each cell

关于matlab - 如何将函数应用于 MATLAB 中矩阵的每一行/列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2307249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com