为什么将Imag函数与实数in参数一起使用? 我想在C++中翻译一个MATLAB代码,并且理解MATLAB代码有一定的困难。它是关于和代码是
X是一个matlab四元数,源代码为:为什么将Imag函数与实数in参数一起使用? 我想在C++中翻译一个MATLAB代码,并且理解MATLAB代码有一定的困难。它是关于和代码是,matlab,Matlab,X是一个matlab四元数,源代码为: C1 = fft2(complex(real(scalar(X)), real(x(X)))); C2 = fft2(complex(imag(scalar(X)), imag(x(X)))); C3 = fft2(complex(real( y(X)), S .* real(z(X)))); C4 = fft2(complex(imag( y(X)), S .* imag(z(X)))); 我认为复杂函数doc是 我
C1 = fft2(complex(real(scalar(X)), real(x(X))));
C2 = fft2(complex(imag(scalar(X)), imag(x(X))));
C3 = fft2(complex(real( y(X)), S .* real(z(X))));
C4 = fft2(complex(imag( y(X)), S .* imag(z(X))));
我认为复杂函数doc是
我假设X(四元数)是q+xi+yj+zk
我知道x(x)是x,y(x)是y,z(x)是z,标量(x)是q
imag函数文档是
我的问题是:
复数(imag(标量(X)),imag(X(X)))
如果我能很好地理解imag(标量(X))和imag(X(X))
总是0(实数的虚部是0),然后复数(imag(标量(X)),imag(X(X))
是0。我想我错了
我的错误在哪里?这段代码在一个条件语句中,它保证了
X
是复杂的。X是一个四元数。但是复数(imag(scalar(X)),imag(X(X)))总是0吗?看看isreal
:只有当所有组件X
y
和z
都是实的时,它才是实的。所以在else
分支中,在这个代码运行的地方,至少有一个是复杂的(有一个虚构的组件)。我现在意识到我对复杂函数的链接是错误的,因为我必须阅读模块@quaternion中的源代码。谢谢