【发布时间】:2011-06-14 14:05:19
【问题描述】:
对不起,如果这很明显,但我搜索了一段时间并没有找到任何东西(或错过了)。
我正在尝试解决 Ax=B 形式的线性系统,其中 A 是 4x4 矩阵,B 是 4x1 向量。
我知道对于单个系统我可以使用mldivide 来获取x:x=A\B。
但是,我正在尝试解决大量系统(可能 > 10000)并且我不愿意使用 for 循环,因为我被告知在许多 MATLAB 问题中它比矩阵公式要慢得多。
然后我的问题是:有没有办法使用 A 4x4x N 和 BAx=B /em> 一个矩阵 4x N ?
PS:我不知道它是否重要,但 B 向量对于所有系统都是相同的。
【问题讨论】:
-
使用矩阵在 MATLAB 中提高性能的整个概念称为 vectorization,它并不像“如果它是矩阵形式 -> 它总是更快”那么简单从答案中可以看出。
-
@Jacob:是的,我的意思是矢量化,感谢您的编辑。我知道有时您无法避免循环,但这只是从我学习 Matlab 的方式来看,并考虑到所有面向向量化的本机函数,我想知道该站点的有经验的人是否已经遇到过这个问题.感谢@Tom 和@Amro 的回答,感谢@Rasman 和@eat 的替代方案。
-
我感觉这是一个常见的场景(Matlab 开发人员可以改进)。我正在运行类似的 for 循环数百万次。
标签: matlab linear-algebra