上运行多个范围的函数一次我有以下矩阵:以矩阵(在Matlab)
MatrixA =
1 10 50
23 45 76
71 81 91
1 2 3
4 5 6
78 89 91
2 3 4
我想运行在每个列中的多个范围中的var
功能。更具体地说,我想为每列的第1行到第3行,第2行到第4行,第3行到第5行等计算var
。我想输出是:
1281.33 1260.33 430.33
1281.33 1564.33 2216.33
1566.33 2004.33 2496.33
... ... ...
我想语法将沿着线的东西:
var(MatrixA([1 2 3]:[3 4 5],:))
但(显然)不工作。
我可以使用循环做到这一点,但我想知道是否有解决方案,这不涉及循环?
如果'var'功能开启MatrixA'的'逐元素函数的线性变换,则可以高效地实现此作为有限脉冲响应滤波器。否则,你可能需要一个循环。 –
还要注意,MATLAB中的循环并不慢,慢的是执行大量不同的(非矢量化的)操作。因此,即使避免了显式循环,'arrayfun'风格的东西也不会帮助性能。你似乎想多次调用'var' ......循环和其他任何方式一样快。 –
然后是一个循环。谢谢! –