当前位置: 首页 > 知识库问答 >
问题:

在Matlab中打印极坐标和三角坐标

常俊侠
2023-03-14

我试图写一个函数,它以笛卡尔坐标系中的x和y值作为输入,并输出极坐标和三角坐标形式。我希望输出包含指数和正弦/余弦,而不是实际值。例如,如果笛卡尔函数是z=1i,我希望函数输出z=sqrt(2)e^(ipi/4)和z=sqrt(2)(cos(pi/4)Isin(pi/4)。我该怎么做?

函数坐标(x, y)

r=sqrt(x.^2 y.^2);

θ=atan(y./x);

Polarcoord=rexp(theta)

=r*(cos(θ)i*sin(θ))

结束

这为我提供了以下输出:

polarcoord公司=

1.0000 1.0000i

trigcoord公司=

1.0000 1.0000i

谢啦

共有1个答案

姜飞飙
2023-03-14

欢迎使用SO!您正在使用函数(sqrt(x)计算x的实际平方根,exp(x)指数,...所以这就是为什么你得到实际值,而不是公式表达式。

因此,输出公式的一种可能方法是使用字符串打印函数而不调用它们。然后,您需要做的是计算您想要的sqrt()内的值和*pi的分数并将它们添加到字符串数组中。我们可以使用方括号[]、函数num2string()和运算符来将字符串添加到同一个字符串html" target="_blank">数组中:

function coordinates(x,y)

[num,dem] = rat(atan(y./x)/pi);  
    % rat converts theta to fraction
    % divide by pi to extract pi from theta    

root = ["sqrt(" + num2str(x^2+y^2) + ")"]; % i.e "sqrt(2)"
pi_value = ["(" + num2str(num) + "*pi/" + num2str(dem) + ")"]; 
    % i.e "(1*pi/4)" o "(2*pi/5)"...

polarcoord = ["z = " + root + "e^(i" + pi_value]

trigcoord = ["z = " + root + "(cos" + pi_value + ")+i*sin" + pi_value]
   
end

示例:

coordinates(1,1)

输出:

polarcoord=“z=sqrt(2)e^(i(1*pi/4)”

trigcoord=“z=sqrt(2)(cos(1pi/4))isin(1*pi/4)”

为了计算分数,我们使用rat()函数从atan(y./x)的双输出中获取分子和分母,并除以pi以从theta值中提取其值(我们已经在字符串中表示pi)。

 类似资料:
  • 编辑:我决定把这个问题分成两部分,因为它实际上是两个问题:1。如何在MATLAB中绘制极曲面图(本问题)和2。如何将拟合极坐标数据点放入粗略(非极坐标)矩阵 我有一个包含某些灰色值(介于0和1之间的值)的矩阵。这些点存储在一个矩形矩阵中,但实际上数据点是通过旋转探测器获得的。这意味着我实际上有极坐标(我知道起始矩阵中每个像素的极坐标)。 我想制作一个数据点的极线图。我有下面的例子。 因为MATLA

  • 我试图计算一种有效的方法,将笛卡尔坐标系中的图像转换为极坐标表示。我知道ImToPolar等一些功能正在实现这一点,它工作得很好,但对于大图像来说需要相当长的时间,尤其是当它们需要来回处理时。 这是我的输入图像: 然后我使用以0为中心的笛卡尔网格和函数生成一个极网格。最后,我使用绘制我的图像。 这是我得到的: 这正是我需要的图像,它与ImToPolar相同,或者更好。 既然MATLAB知道如何计算

  • 假设我必须生成20个随机坐标,20个行号和20个列号。 有没有办法显示我存储在数组中的所有数字?尝试使用偏移,但没有成功。

  • 我正在尝试将极坐标的图像转换为笛卡尔坐标。 将图像转换为极坐标的示例显式执行-想要一个光滑的矩阵方法 我原以为使用上述方法是小菜一碟,但事实并非如此!!如果有人发现我的代码有错误,请告诉我! 我发现非常奇怪的是,当我改变phi时,它会做出根本性的改变,而不是以我期望的方式! 干杯

  • 我试图将图像从极坐标转换为笛卡尔坐标,但在应用公式后,我得到了浮点坐标(r和teta),我不知道如何使用x和y的浮点来表示空间中的点。可能有一种方法可以将它们转换为整数,并仍然保留分布,但我不知道如何。我知道OpenCV中有像warpPolar这样的函数,但我想自己实现它。任何想法都会有帮助:) 这是我的代码:

  • 我在将图像转换为极坐标时遇到问题。在Photoshop中很容易:)所以这对我来说是一个新领域。 我有以下图片: 结果应该是这样的: 我在这里看了一下,了解了一些基本知识,但仍然对圆的平方有点困惑: 我几乎不知道如何重新绘制图像。还有一个警告:由于管理限制,我想避免使用像Numpy这样的外部库。