将函数应用于矩阵的每一列(向量化)

3

如何在不通过循环的方式下,对矩阵中的每一列应用函数?

我现在使用的函数是 pwelch,但这个概念对于任何函数都是适用的。 目前,我的做法是通过循环来遍历矩阵中的每一列。

 X = ones(5);
    for i = 1:5 % length of the number of columns
    result = somefunction(X(:,i))
    end

有没有一种方法可以对这段代码进行向量化处理?
1个回答

3

您说

任何函数的概念都应该是相同的

实际上并不是这样。根据函数的不同,调用它的代码可以被向量化或者不被向量化。这取决于函数在内部是如何编写的。从函数的外部来看,您无法对其进行向量化处理。向量化是在函数内部完成的,而不是从外部完成的。

如果函数已经被向量化了,您只需使用矩阵调用它,函数就会针对每一列进行处理。例如,在sum中就是这样做的。

至于pwelch,您很幸运:根据文档 (强调添加),

Pxx = pwelch(X) 返回功率谱密度(PSD)估计值,Pxx,...

X为矩阵时,PSD将被独立地计算每一列,并存储在Pxx的相应列中

所以pwelch是一个向量化的函数。


我错过了很多。从错误的角度攻击问题。谢谢! - Ash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接