我有一个二维数组,想在其中一个列上运行原地(inverse)FFT。以下代码不会改变数据:
请帮忙,谢谢!
ifft!(buf_FFT[:,ind_page], 1)
以下代码按预期工作:
buf_FFT[:,ind_page] = ifft(buf_FFT[:,ind_page])
答案可能很明显,但我对Julia还很陌生,搜索中找不到答案。我假设第一个版本不起作用是因为当我指定数组子集时,Julia实际上会复制一份。该副本将被操作,但随后会被丢弃。在第二个版本中,副本会被复制回原始数组。这是正确的吗?如何正确地就地访问数组子集?请帮忙,谢谢!
@view
宏:ifft!(@view(buf_FFT[:,1]), 1)
。 - Simon Byrne