首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB:如何矢量化复杂共轭的积累?

MATLAB:如何矢量化复杂共轭的积累?
EN

Stack Overflow用户
提问于 2014-09-20 18:51:00
回答 1查看 66关注 0票数 2

我正在学习如何使用MATLAB脚本进行意义上的MRI重建,其中一节如下:

代码语言:javascript
复制
% Form high-res brain image by combining the image data from all coil
% channels.  This is done by multiplying each channel image elementwise by
% its complex conjugate, accumulating into the high-res image, and taking
% the square root of the result (since multplying by a complex conjugate
% results in obtaining the square of the real part)

for k = 1:nchannels
    Image_E = Image_E + Img(:, :, k).*conj(Img(:, :, k));
end
Image_E = sqrt(Image_E);

Img是一个256x256x8阵列,其中三维是由8个复杂的脑图像组成的“堆栈”。Image_E的每个像素是Img堆栈中8幅图像中相应像素的绝对值的1-2范数。

我怀疑有一种更有效的、矢量化的方法来实现上面执行的例程(也许使用arrayfun()),但是到目前为止还没有想到可靠的实现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-20 19:09:12

如果你把复杂的共轭相乘,那么它和Real.^2+Img.^2是一样的,因此,一个更简单的方法是

代码语言:javascript
复制
Image_E=sqrt(sum(real(Img).^2+imag(Img).^2,3))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25952208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档