我有一个函数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
,该函数提取real
和imag
值,然后堆叠结果。
N = @(k) [real(M(k)); imag(M(k))];
使用N(r)
调用此匿名函数以获得预期结果。
或者,如果您已经计算了注释掉的代码中的M
,那么您可以执行以下操作:
N = @(k) [real(k); imag(k)];
然后用N(M)
调用它.