2d在matlab中绘制复数

时间:2014-02-13 16:59:31

标签: matlab plot complex-numbers

我有一个矩阵

b = [1+ 1i, 2 + 1i, 2+ 2i, 3 + 3i, 3+ 3i ; ...
     1.2 + 2i , 2+2i,  2.1 + 2.1i, 3+2.1i, 3.1 + 3.2i]   

其中real(b)x坐标,b(x,:)是一个实验,imag(b)y坐标。

我想要两件事:

  1. 在二维图中将我的实验绘制为线条(但点数必须是正确的顺序)

  2. 将我的y(通常称为z)坐标绘制为轴x上的曲面并进行实验。

  3. 问题是,我想要沿着行的行和Matlab混合复数的坐标,并且该行在整个地方以锯齿形显示。

    更基本的问题是,我想在x1处设置从x2y1的条形码,而我只想在{{{{}}处添加数据点y1 1}}和x1。但在x2,还有x2似乎混淆了Matlab。

2 个答案:

答案 0 :(得分:1)

您可以使用Euler's formula将数据从笛卡尔坐标转换为极坐标。

clear all; close all;

function [rho, theta] = polarize(z)
  rho = abs(z);
  theta = angle(z);
end

b = [1+ 1i, 2 + 1i, 2+ 2i, 3 + 3i, 3+ 3i;
1.2 + 2i , 2+2i,  2.1 + 2.1i, 3+2.1i, 3.1 + 3.2i];

[rho1, theta1] = polarize(b(1,:));
[rho2, theta2] = polarize(b(2,:));

figure
hold on
polar(theta1, rho1, 'b');
polar(theta2, rho2, 'r');

print('-dpng','euler.png')

八度结果: polar plot

答案 1 :(得分:0)

对于问题(1),plot(b)将为您提供由b列组成的行。如果您切换到使用b-transpose,即plot(b'),您将分别绘制每一行。

plot(b')
ylim([-4 0])
xlim([-0 4])

问题(2)需要resp函数的某个工具箱吗?