在matlab中绘制虚数

时间:2015-02-15 19:28:26

标签: arrays matlab math numbers

我正在尝试学习matlab。 我正在尝试制作一个绘制这些虚数的程序:("," =十进制数)

enter image description here

确定最接近实轴的500个数字。 我需要一点指导。

我需要做些什么才能解决这个问题? 我正在考虑制作一个所有"值和#34;存储在数组中:

[code]
n= 1
while n < 500
    value=1+0.1^n;
    disp(value)
        n=n+1[/code] 

(似乎值是打印错误的值?以及如何存储在数组中?) 然后以某种方式确定最接近实轴的数字,然后显示该值。

如果有人可以帮助我,我将非常感激。

提前感谢。

1 个答案:

答案 0 :(得分:3)

MATLAB通过在数字上附加ij项来创建虚数。例如,如果您想创建一个虚数,使实数组件为1而虚构组件为1,则只需执行以下操作:

>> A = 1 + i

A =

   1.0000 + 1.0000i

您可以看到有一个独特的真实组件和一个虚构组件,并存储在A中。同样,如果要使虚构组件具有除1之外的任何值,则需要在i(或j)前面添加常量。类似的东西:

>> A = 3 + 6i

A =

   3.0000 + 6.0000i

因此,对于您的任务,您只需在n1之间创建500的向量,将其输入上面的等式,然后绘制得到的虚数。在这种情况下,您可以绘制x轴上的实部和y轴上的虚部。类似的东西:

>> n = 1 : 500;
>> A = (1 + 0.1i).^n;
>> plot(real(A), imag(A));

enter image description here

realimag是MATLAB中的函数,用于访问存储在数组,矩阵或单个值中的复数的实部和虚部。正如knedlsepp所指出的,您可以简单地绘制数组本身,因为plot可以处理复数值数组:

>> plot(A);

好看的照片顺便说一下!请注意附加.运算符的^运算符。 .表示按元素操作。这意味着我们希望对n的{​​{1}}的每个值应用幂功能,15001 + 0.1i为基数。结果将是500元素数组,其结果为计算结果。如果我们自己^,我们就会期望执行矩阵幂运算,但事实并非如此。

您要为帖子中的等式应用的n的每个值分析的值都存储在A中。然后,我们在图表上绘制实部和虚部。现在,如果要查找哪些数字最接近实轴,您只需要找到A中存储的数字的最小绝对虚部,然后搜索所有共享该数字的数字。

>> min_dist = min(abs(imag(A)));
>> vals = A(abs(imag(A)) == min_dist)

vals =

   1.3681 - 0.0056i

这意味着1.3681 - 0.0056i的值最接近实轴。