我有一个480x640大小的矩阵(可以说是A
)。我想要另一个相同大小的矩阵(B
),其中B
中的每个元素都是A
中对应元素的exp()
。
有没有一个优雅的方式,除了常规的循环?在Matlab中对矩阵的每个元素应用函数
0
A
回答
6
2
在良好的MATLAB实践环境中,尝试利用内置于MATLAB中的矢量化操作几乎总是最好的,正如Shai's answer所说的那样。
但是,要回答明确的问题,功能如arrayfun
,cellfun
和structfun
。这些函数可以分别对数组,单元阵列和结构的每个元素应用函数。这对于你想要执行的操作没有内置的情况或者它不是矢量化操作的情况很有用。
例如,arrayfun
:
A = [1, 2; 3, 4];
B = arrayfun(@(x) exp(x), A);
C = exp(A);
test = all(B(:) == C(:)) % Test for equivalence
而且test
回报true
。
相关问题
- 1. MatLab - 对矩阵中的每一行应用一个函数
- 2. 在矩阵的每个元素上应用函数
- 3. 将传递函数应用于矩阵的每个元素
- 4. MATLAB中两个矩阵的高效元素明智函数
- 5. Matlab,如何比较行矩阵的每个元素与另一行矩阵的每个元素?
- 6. Matlab矩阵元素检查
- 7. 在Matlab中修改矩阵元素
- 8. 如何在MATLAB中为矩阵中的每列添加每列中的元素?
- 9. 如何在matlab中对矩阵中的元素进行分组?
- 10. 如何将随机数应用于矩阵中的每个单元格 - Matlab
- 11. 如何用MATLAB中的另一个矩阵替换矩阵的元素?
- 12. 矩阵的矩阵对角元素
- 13. 如何在MATLAB中删除矩阵的对角线元素?
- 14. 矩阵矩阵在Matlab中的数组?
- 15. 如何重复元素矩阵在MATLAB
- 16. MATLAB函数矩阵参数
- 17. 如何对numpy矩阵中的每个元素执行操作?
- 18. Matlab |几个变量的矩阵函数
- 19. Matlab基于元素的矩阵乘法
- 20. 矩阵的Matlab随机元素
- 21. 将索引函数应用于矩阵行中的每个值
- 22. 如何从matlab中矩阵的每一列中选择一个元素?
- 23. 如何在MATLAB中将函数应用于矩阵?
- 24. Matlab - 在使用“for循环”中2个矩阵的元素数目不匹配
- 25. 在Matlab中重新排序矩阵的每一行中的离散元素
- 26. 如何将函数应用于MATLAB中矩阵的每一行/列?
- 27. Matlab:元素3D矩阵乘法
- 28. 来自矩阵的所有2x2子矩阵中的每个元素的总和
- 29. 使用R计算矩阵中每个元素的exp()
- 30. 将操作应用于R中的列矩阵中的每个元素
为了避免混淆,值得一提的是,你不能*使用'arrayfun'使用匿名函数! 'arrayfun(@exp,A)'很好。 – Will
你忘了'spfun'。 @试着想,如果你使用spfun(@exp,S)''exp(S)';)会发生什么; – Shai