如何分别输出实部和虚部,而不是只有一个复向量



我有一个函数M,它输出复数,输入范围为r。我不是只输出一个复数,而是希望函数为所有输出复向量输出两个值(分别是实部和虚部(。我希望该函数是匿名函数。

我尝试了以下内容但没有工作,因为我只是得到单个输出复杂值:

r = linspace(1E-10,1.5,100);
%M= (0.5*((1i*r+0.135).* (1i*r+0.651)))./((1i*r+0.0965).* (1i*r+0.4555))
M= @(r)(0.5*((1i*r+0.135).* (1i*r+0.651)))./((1i*r+0.0965).* (1i*r+0.4555))

如何分离向量的真实部分和复杂部分?

使用不同的变量创建一个匿名函数以避免混淆,即使用以下命令创建M

M = @(k)(0.5*((1i*k+0.135).* (1i*k+0.651)))./((1i*k+0.0965).* (1i*k+0.4555));

然后创建另一个匿名函数,例如N,该函数提取realimag值,然后堆叠结果。

N = @(k) [real(M(k)); imag(M(k))];

使用N(r)调用此匿名函数以获得预期结果。


或者,如果您已经计算了注释掉的代码中的M,那么您可以执行以下操作:

N = @(k) [real(k); imag(k)];

然后用N(M)调用它.

相关内容

最新更新