网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月29日漏签0天
mathematica吧 关注:19,844贴子:73,899
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 6回复贴,共1页
<<返回mathematica吧
>0< 加载中...

【请教】ArrayResample与Fourier的问题

  • 只看楼主
  • 收藏

  • 回复
  • 任道正
  • 还分不清
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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又能正常工作,请问下问题到底出在哪里?


  • 无影东瓜
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
目测是ArrayResample的bug,与Fourier无关
比如
In[86]:= A = N@IdentityMatrix[4] + I;
ArrayResample[A, Scaled[1/2]]
ArrayResample[A, Scaled[1/2]] //
ToString[#, InputForm] & // ToExpression
Out[87]= ArrayResample[{{1. + 1. I, 0. + 1. I, 0. + 1. I,
0. + 1. I}, {0. + 1. I, 1. + 1. I, 0. + 1. I,
0. + 1. I}, {0. + 1. I, 0. + 1. I, 1. + 1. I,
0. + 1. I}, {0. + 1. I, 0. + 1. I, 0. + 1. I, 1. + 1. I}},
Scaled[1/2]]
Out[88]= {{1. + 1. I, 0. + 1. I, 0. + 1. I}, {0. + 1. I, 0.5 + 1. I,
0. + 1. I}, {0. + 1. I, 0. + 1. I, 1. + 1. I}}
建议向Wolfram官方反映一下


2025-07-29 20:08:11
广告
不感兴趣
开通SVIP免广告
  • 隨意超
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
似乎如果列表是PackedArray并含有虚数时,在计算需要产生新项时会无法处理
12/23/17 16:43:53 In[101]:= A = Fourier@RandomReal[{0, 1}, {4, 4}];
B = A /. 233 -> 0;
c = B // Developer`ToPackedArray;
d = c // Developer`FromPackedArray;
ArrayResample[A, Scaled[1/2]]
ArrayResample[B, Scaled[1/2]]
ArrayResample[c, Scaled[1/2]]
ArrayResample[d, Scaled[1/2]]
12/23/17 16:43:54 Out[105]= ArrayResample[{{1.9841 +
0. I, -0.263844 + 0.191388 I,
0.122302 + 0. I, -0.263844 - 0.191388 I}, {-0.386502 -
0.320247 I, -0.188588 + 0.200875 I,
0.00549514 + 0.182064 I, -0.220494 + 0.458365 I}, {-0.148452 +
0. I, 0.0333081 + 0.0340163 I, 0.514551 + 0. I,
0.0333081 - 0.0340163 I}, {-0.386502 + 0.320247 I, -0.220494 -
0.458365 I, 0.00549514 - 0.182064 I, -0.188588 - 0.200875 I}},
Scaled[1/2]]
12/23/17 16:43:54 Out[106]= {{1.9841 + 0. I, -0.0707706 +
0.0956939 I, -0.263844 - 0.191388 I}, {-0.267477 - 0.160123 I,
0.0911917 + 0.104239 I, -0.0935928 + 0.212174 I}, {-0.386502 +
0.320247 I, -0.107499 - 0.320214 I, -0.188588 - 0.200875 I}}
12/23/17 16:43:54 Out[107]= ArrayResample[{{1.9841 +
0. I, -0.263844 + 0.191388 I,
0.122302 + 0. I, -0.263844 - 0.191388 I}, {-0.386502 -
0.320247 I, -0.188588 + 0.200875 I,
0.00549514 + 0.182064 I, -0.220494 + 0.458365 I}, {-0.148452 +
0. I, 0.0333081 + 0.0340163 I, 0.514551 + 0. I,
0.0333081 - 0.0340163 I}, {-0.386502 + 0.320247 I, -0.220494 -
0.458365 I, 0.00549514 - 0.182064 I, -0.188588 - 0.200875 I}},
Scaled[1/2]]
12/23/17 16:43:54 Out[108]= {{1.9841 + 0. I, -0.0707706 +
0.0956939 I, -0.263844 - 0.191388 I}, {-0.267477 - 0.160123 I,
0.0911917 + 0.104239 I, -0.0935928 + 0.212174 I}, {-0.386502 +
0.320247 I, -0.107499 - 0.320214 I, -0.188588 - 0.200875 I}}
12/23/17 16:44:01 In[109]:= Developer`PackedArrayQ /@ {A, B, c, d}
12/23/17 16:44:01 Out[109]= {True, False, True, False}
12/23/17 16:44:02 In[110]:= ArrayResample[A, {2, 2}]
ArrayResample[A, {3, 3}]
12/23/17 16:44:02 Out[110]= {{1.9841 + 0. I, -0.263844 -
0.191388 I}, {-0.386502 + 0.320247 I, -0.188588 - 0.200875 I}}
12/23/17 16:44:02 Out[111]= ArrayResample[{{1.9841 +
0. I, -0.263844 + 0.191388 I,
0.122302 + 0. I, -0.263844 - 0.191388 I}, {-0.386502 -
0.320247 I, -0.188588 + 0.200875 I,
0.00549514 + 0.182064 I, -0.220494 + 0.458365 I}, {-0.148452 +
0. I, 0.0333081 + 0.0340163 I, 0.514551 + 0. I,
0.0333081 - 0.0340163 I}, {-0.386502 + 0.320247 I, -0.220494 -
0.458365 I, 0.00549514 - 0.182064 I, -0.188588 - 0.200875 I}}, {3,
3}]


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 6回复贴,共1页
<<返回mathematica吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示