MATLAB:如何在2d闭合形状中找到任意曲面的面积

时间:2016-05-10 03:18:35

标签: matlab area surface

我有一个封闭的2d表面如下:

r=1+0.1*sin(5*theta)+a*sin(6*theta);
x=r.*cos(theta);
y=r.*sin(theta);
plot(x,y);

我想知道找到它的区域最有效的方法是什么?

1 个答案:

答案 0 :(得分:2)

来自MATLAB文档: http://www.mathworks.com/help/matlab/ref/polyarea.html

您可以使用polyarea

<强> Sintax

A = polyarea(X,Y)
A = polyarea(X,Y,dim)

<强>描述

A = polyarea(X,Y)返回向量XY中顶点指定的多边形区域。

如果XY是相同大小的矩阵,则polyarea会返回由XY列定义的多边形区域。

如果XY是多维数组,则polyarea会返回XY的第一个非单独维度中多边形的区域。

A = polyarea(X,Y,dim)沿着标量dim指定的维度运行。

示例

L = linspace(0,2.*pi,9);
xv = 1.2*cos(L)';
yv = 1.2*sin(L)';

xv = [xv ; xv(1)];
yv = [yv ; yv(1)];

A = polyarea(xv,yv)

// Result A = 4.0729
plot(xv,yv);
title(['Area = ' num2str(A)])
axis image

enter image description here