[Python] Matlab的fft与Numpy的fft.fft在计算二维矩阵时结果如何保持一致

首先明确一点,Numpy的fft.fft默认返回每行的结果,Matlab的fft默认返回每列的结果。

Matlab与Numpy保持一致

Python代码:

import numpy np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.fft.fft(a)

能得到相同结果的Matlab代码:

clear
clc

a = [1 2 3;4 5 6];
b = fft(a')'  % fft(a, size(a, 2), 2)或fft(a, [], 2)也行

Numpy与Matlab保持一致

Matlab代码:

clear
clc

a = [1 2 3;4 5 6];
b = fft(a)

得到相同结果的Python代码:

import numpy np

a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.fft.fft(a, axis=0)  # axis=0时对矩阵中列向量进行FFT,axis=1时对矩阵中行向量进行FFT

附注

  • 务必使原矩阵(即文中a)完全一样
  • Matlab的fft函数常用形式:fft(x)和fft(x, n, dim),后者表示在dim的维度上进行n点FFT。dim=1时对矩阵中列向量进行FFT,dim=2时对矩阵中行向量进行FFT。
  • 如若计算三维矩阵,需要注意Matlab与Numpy的索引有所区别。Matlab中三维矩阵为a(x, y, z),或者说a(行, 列, 层);Numpy中三维矩阵为a(z, x, y),或者说a(层,行,列)
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值