【发布时间】:2012-09-05 22:17:04
【问题描述】:
我和办公室的另一个人讨论了哪种复数矩阵数组格式更有效:交错存储实部和虚部,如下所示
struct {
double real;
double imag;
} Complex foo[m][n];
或者通过分别存储矩阵的实部和虚部:
struct {
double rarray[m][n];
double iarray[m][n];
} CArray foo;
一方面,Complex[][] 更直接地表示复数数组,并且在元素方面可能更容易处理;另一方面,似乎CArray 通常会更有效率。例如,矩阵乘法可以使用 CArray 格式的组件数组的 4 次矩阵乘法来完成,而 Complex[][] 格式似乎可能由于元素之间的交错而受到影响(因为 (a+bi)*( c+di) = (ad - bc) + (ac + bd)i)。显然,MATLAB 使用后一种格式:enter link description here。
还有其他处理这个问题的来源吗?
【问题讨论】:
标签: matrix format storage numerical complex-numbers