程序如下:
clear;clc
a=5;b=20;
t=-2*pi:0.001:2*pi;
x=a*sin(t);
y=b*cos(t);
plot(x,y)
xlist = []; % 存放结果的数组
ylist = [];
cnt = 0;
while cnt < 100%产生椭圆内点
x1 = randi(100,1,1)/10;%产生随机数
y1 =randi(100,1,1)/10;
if (x1/a)^2 + (y1/b)^2 < 1 % 判断是否在椭球内部
cnt = cnt + 1;
xlist(cnt) = x1;
ylist(cnt) = y1;
disp(['输出随即数 (' num2str(xlist(cnt)) ',' num2str(ylist(cnt)) ')'])
end
end
hold on
plot(xlist, ylist, '.r'); % 绘制点的分布的点
legend('椭圆' ,'随机点')
grid on
追问非常感谢,我的表达有误,我是想产生一个形状为椭圆的随机数据集(可以在椭圆边上也可以在椭圆内部),您可以把长轴设置很长,短轴短一点,麻烦您再给看看,再次感谢!
追答这个怎么样。程序在附件中。
给你一个代码
clear;
clc;
close all;
N=1500;
a=20;
b=5;
num=0;
X=[];
Y=[];
while( num<N )
xi=rand()*2-1;
yi=rand()*2-1;
if( xi^2 + yi^2 <= 1 )
X=[X; xi*a];
Y=[Y; yi*b];
num = num + 1 ;
end
end
t=[-pi:0.1:pi pi];
x=a*cos(t);
y=b*sin(t);
figure;
hold on;
grid on;
axis equal;
plot(X,Y,'b.')
plot(x,y,'color','r','LineWidth',1.5)
xlim([-20 20]);
ylim([-10 10]);
legend('随机点','椭圆')
效果图如下:
高手指点,MATLAB 如何在一个长轴为20 短轴为椭圆5的内产生14个随机数...
clear;clc a=5;b=20;t=-2*pi:0.001:2*pi;x=a*sin(t);y=b*cos(t);plot(x,y)xlist = []; % 存放结果的数组 ylist = [];cnt = 0;while cnt < 100%产生椭圆内点 x1 = randi(100,1,1)\/10;%产生随机数 y1 =randi(100,1,1)\/10;if (x1\/a)^2 + (y1\/b)^2 < 1...
现在已知椭圆的长轴和短轴的值,如何在matlab里面实现画出椭圆的图形呢...
theta=0:pi\/20:2*pi ;a=2;b=1;x=a.*cos(theta);y=b.*sin(theta);plot(x,y);a,b为长轴和短轴的值
我像用matlab画出一个椭球面,具体参数如图,希望有高手能帮我画一下
生成单位球面的数据(使用球面坐标,然后变换为直角坐标)n = 30;theta = (-n:2:n)\/n*pi;phi = (-n:2:n)'\/n*pi\/2;cosphi = cos(phi); cosphi(1) = 0; cosphi(n+1) = 0;sintheta = sin(theta); sintheta(1) = 0; sintheta(n+1) = 0;x = cosphi*cos(theta);y =...
椭圆周长怎么算呀?
椭圆周长没有精确的初等公式,但有非初等的椭圆积分形式的表达及其级数展开式,椭圆周长理论公式是存在的不过它不能用初等函数表示,它是一个与离心率有关的无穷收敛级数,本公式已经把正圆周长纳入其中,在某种意义上讲正圆是特殊的椭圆,也就是说正圆是长短轴相等的椭圆。公式推导是要利用到曲线长度积分...