ArrayResample与Fourier这两个函数配合使用时,存在一个很奇怪的问题,代码如下:
ArrayResample[Fourier@RandomReal[{0, 1}, {4, 4}], Scaled[1/2]]
代码很简单,生成一个4*4的随机矩阵,然后对矩阵进行离散傅里叶变换,离散傅里叶变换之后再用ArrayResample抽样成2*2的矩阵,然而这行代码执行的结果为:
ArrayResample[{{2.47417 + 0. I, -0.109057 + 0.085872 I, -0.105956 +
0. I, -0.109057 - 0.085872 I}, {0.0693588 - 0.289296 I,
0.108197 + 0.00226999 I, 0.00873954 + 0.413119 I,
0.340223 - 0.405875 I}, {0.0085941 + 0. I, -0.419277 -
0.0741465 I, -0.267024 + 0. I, -0.419277 +
0.0741465 I}, {0.0693588 + 0.289296 I, 0.340223 + 0.405875 I,
0.00873954 - 0.413119 I, 0.108197 - 0.00226999 I}}, Scaled[1/2]]
也就是说ArrayResample函数根本没执行,我测试很多次,Fourier函数生成的复数矩阵,ArrayResample都会遇到此问题!然而如果用Table重新构造一个与Fourier生成的完全一样的复数矩阵,ArrayResample又能正常工作,请问下问题到底出在哪里?
ArrayResample[Fourier@RandomReal[{0, 1}, {4, 4}], Scaled[1/2]]
代码很简单,生成一个4*4的随机矩阵,然后对矩阵进行离散傅里叶变换,离散傅里叶变换之后再用ArrayResample抽样成2*2的矩阵,然而这行代码执行的结果为:
ArrayResample[{{2.47417 + 0. I, -0.109057 + 0.085872 I, -0.105956 +
0. I, -0.109057 - 0.085872 I}, {0.0693588 - 0.289296 I,
0.108197 + 0.00226999 I, 0.00873954 + 0.413119 I,
0.340223 - 0.405875 I}, {0.0085941 + 0. I, -0.419277 -
0.0741465 I, -0.267024 + 0. I, -0.419277 +
0.0741465 I}, {0.0693588 + 0.289296 I, 0.340223 + 0.405875 I,
0.00873954 - 0.413119 I, 0.108197 - 0.00226999 I}}, Scaled[1/2]]
也就是说ArrayResample函数根本没执行,我测试很多次,Fourier函数生成的复数矩阵,ArrayResample都会遇到此问题!然而如果用Table重新构造一个与Fourier生成的完全一样的复数矩阵,ArrayResample又能正常工作,请问下问题到底出在哪里?