2013-05-13 90 views
0

我有几个m文件,这些文件基本上是包含很长时间的复杂方程,它们在期刊论文中占用了多条线。目前,他们使用矩阵运算符,即*/,^。我想将它们转换为数组运算符,即.*,./,.^,这样我就可以将我对它们进行的计算进行向量化。数组和矩阵运算符之间是否存在性能差异?

我的问题是,是否有任何理由不能简单地做一个搜索并替换所有的操作符?将标量乘以元素明智的运算符是否存在性能问题?

+1

如果你只是做一个搜索和替换,你怎么能确定这些方程中的一些不是*已经*在矩阵上运行? – wakjah 2013-05-13 22:43:01

+0

为什么你不这样做,看看它是否给你想要的结果。如果你担心它会影响性能(我非常怀疑),然后使用'tic'和'toc'或者'timeit'做一个小测试。 – Dan 2013-05-13 23:31:22

+0

如果你的目标是矢量化表达式,那么提供一个最小工作示例我们可以测试以提供矢量化解决方案。 – Oleg 2013-05-14 08:56:56

回答

3

我会说这不是一个表现的问题。

如果你正在处理线性代数表情,那么你肯定不想只搜索&替换:假设A = [1; 2; 3]和,你有A'*B,那么你不能转换为A'.*B因为尺寸不相符元素明智的产品(它会出错)。

标量乘法的情况下,我认为JIT是足够聪明,认为等同1*21.*2和相同的解释它们。

+0

最后一行真的是我正在寻找(并找不到)。我不确定MATLAB在处理开销方面是否按照标量处理这两个运算符。 – craigim 2013-05-15 14:38:56

相关问题