nufftn
说明
示例
输入参数
X
— 输入数组
向量 | 矩阵 | 多维数组
输入数组,指定为数值向量、矩阵或多维数组。
数据类型: double
| single
| int8
| int16
| int32
| uint8
| uint16
| uint32
| logical
复数支持: 是
t
— 样本点
向量 | 矩阵 | 向量元胞数组
采样点,指定为输入数组 X
的每个维度的向量、矩阵或向量元胞数组。
当指定为向量或矩阵时,t
的行数必须等于 X
中的元素数。当未指定查询点时,将在每个维度中均匀分布的 N 个查询点处计算变换,其中 N = ceil(numel(X).^(1/D))
且 D 是 t
中的列数。输出 Y
是每个维度中长度为 N 的一个 D 维数组。
当指定 t
为 D 个向量组成的元胞数组时,每个向量的长度必须等于 X
的对应维度的长度。
数据类型: double
| single
f
— 查询点
向量 | 矩阵 | 向量元胞数组
查询点,指定为与输入数组 X
的每个维度对应的向量、矩阵或向量元胞数组。当指定为矩阵时,f
必须为 M×k 数组,其中 k 大于或等于由采样点定义的维数 D。
当 f
指定为由 D 个向量组成的元胞数组时,输出 Y
的每个维度的长度等于元胞数组中对应向量的长度。
要指定 f
而不指定采样点,请使用 nufftn(X,[],f)
。
数据类型: double
| single
扩展功能
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 R2020a 中推出R2023b: 进一步改进了使用非均匀采样点或查询点时的性能
nufftn
函数在对非等间距采样点或非等间距查询点执行运算时性能得到了改进。
例如,以下代码构造一个由非均匀采样点构成的 262144×3 矩阵 t
,并在一个 64×64×64 数组的每个维度上计算非均匀离散傅里叶变换。代码的执行速度比上一版本大约快 3.3 倍。
function timingSamplePoints rng default t = rand(64^3,3); X = rand(64,64,64); tic Y = nufftn(X,t); toc end
大致的执行时间是:
R2023a:0.40 秒
R2023b:0.12 秒
代码是在运行 Windows® 10 的 Intel® Xeon® CPU E5-1650 v4 @ 3.60 GHz 测试系统上通过调用 timingSamplePoints
函数进行计时的。
作为另一个示例,以下代码构造一个由非均匀查询点构成的 262144×3 矩阵 f
,并在一个 64×64×64 数组的每个维度上计算非均匀离散傅里叶变换。代码执行速度比上一版本大约快 1.6 倍。
function timingQueryPoints rng default f = rand(64^3,3); X = rand(64,64,64); tic Y = nufftn(X,[],f); toc end
大致的执行时间是:
R2023a:0.40 秒
R2023b:0.25 秒
代码是在运行 Windows 10 的 Intel Xeon CPU E5-1650 v4 @ 3.60 GHz 测试系统上通过调用 timingQueryPoints
函数进行计时的。
R2022a: 改进了使用非均匀采样点或查询点时的性能
nufftn
函数在对非等间距采样点或非等间距查询点执行运算时性能得到了改进。
例如,以下代码构造一个由非均匀采样点构成的 32768×3 矩阵 t
,并在一个 32×32×32 数组的每个维度上计算非均匀离散傅里叶变换。其运行速度约为上一版本的 14.5 倍:
function timingSamplePoints rng default t = rand(32^3,3); X = rand(32,32,32); tic; Y = nufftn(X,t); toc end
大致的执行时间是:
R2021b:2.76 秒
R2022a:0.19 秒
代码是在运行 Windows 10 的 Intel Xeon CPU E5-1650 v4 @ 3.60 GHz 测试系统上通过调用 timingSamplePoints
函数进行计时的。
作为另一个示例,以下代码构造一个由非均匀查询点构成的 65536×3 矩阵 f
,并在一个 64×32×32 数组的每个维度上计算非均匀离散傅里叶变换。其运行速度约为上一版本的 42.6 倍:
function timingQueryPoints rng default f = rand(64*32*32,3); X = rand(64,32,32); tic; Y = nufftn(X,[],f); toc end
大致的执行时间是:
R2021b:4.26 秒
R2022a:0.10 秒
代码是在运行 Windows 10 的 Intel Xeon CPU E5-1650 v4 @ 3.60 GHz 测试系统上通过调用 timingQueryPoints
函数进行计时的。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)