MATLAB:如何找到二维封闭形状中任意曲面的面积
MATLAB: How to find area of an arbitrary surface in a 2d closed shape
我有一个封闭的二维曲面如下:
r=1+0.1*sin(5*theta)+a*sin(6*theta);
x=r.*cos(theta);
y=r.*sin(theta);
plot(x,y);
我想知道找到它的面积的最有效方法是什么?
来自 MATLAB 文档: http://www.mathworks.com/help/matlab/ref/polyarea.html
您可以使用polyarea
语法
A = polyarea(X,Y)
A = polyarea(X,Y,dim)
描述
A = polyarea(X,Y)
returns 由向量 X
和 Y
.
中的顶点指定的多边形面积
如果 X
和 Y
是相同大小的矩阵,则 polyarea returns 由 X
和 Y
列定义的多边形面积.
如果 X
和 Y
是多维数组,polyarea returns 是 X
和 Y
的第一个非单一维度中的多边形面积。
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
我有一个封闭的二维曲面如下:
r=1+0.1*sin(5*theta)+a*sin(6*theta);
x=r.*cos(theta);
y=r.*sin(theta);
plot(x,y);
我想知道找到它的面积的最有效方法是什么?
来自 MATLAB 文档: http://www.mathworks.com/help/matlab/ref/polyarea.html
您可以使用polyarea
语法
A = polyarea(X,Y)
A = polyarea(X,Y,dim)
描述
A = polyarea(X,Y)
returns 由向量 X
和 Y
.
如果 X
和 Y
是相同大小的矩阵,则 polyarea returns 由 X
和 Y
列定义的多边形面积.
如果 X
和 Y
是多维数组,polyarea returns 是 X
和 Y
的第一个非单一维度中的多边形面积。
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