MATLAB生成隨機數據集

MATLAB產生隨機數據集合(線性,非線性)

  1. 生成線性隨機數

function  GenerRand_Linear( a,b,num )  %y=ax+b,生成num個隨機數
%UNTITLED 此處顯示有關此函數的摘要
%   此處顯示詳細說明
Xbuf=zeros(num,1);
Ybuf=zeros(num,1);
for i=1:num
    Xbuf(i,1)=10*rand;
    Ybuf(i,1)=a*Xbuf(i,1)+b+rand*2;
end
plot(Xbuf,Ybuf,'.r');
end

在這裏插入圖片描述

  1. 產生聚類數據(高斯分佈)
function  GeneRand_Category()
%UNTITLED3 此處顯示有關此函數的摘要
%   此處顯示詳細說明
Category1=[normrnd(2,1,100,2)]; %高斯分佈的第一類數據集合
Category2=[normrnd(10,1,100,2)];%第二類
Category3=[normrnd(2,1,100,2)];%第三類
for i=1:100
    Category3(i,1)= Category3(i,1)+8;
end
figure;
hold on;
plot(Category1(1:100,1),Category1(1:100,2),'.');
plot(Category2(1:100,1),Category2(1:100,2),'.');
plot(Category3(1:100,1),Category3(1:100,2),'.');
hold off;
end

在這裏插入圖片描述

  1. 非線性數據集
function  GeneRand_Nonlinear()
%UNTITLED4 此處顯示有關此函數的摘要
%   此處顯示詳細說明
r1=2;
r2=5;
r3=9;
X1=zeros(100,1);
Y1=zeros(100,1);
X2=zeros(100,1);
Y2=zeros(100,1);
X3=zeros(100,1);
Y3=zeros(100,1);
for i=1:100
    the_angle=2*pi*rand(100,1);
    X1(i,1)=r1*cos(the_angle(i,1))+10+rand;
    Y1(i,1)=r1*sin(the_angle(i,1))+10+rand;
    X2(i,1)=r2*cos(the_angle(i,1))+10+rand;
    Y2(i,1)=r2*sin(the_angle(i,1))+10+rand;
    X3(i,1)=r3*cos(the_angle(i,1))+10+rand;
    Y3(i,1)=r3*sin(the_angle(i,1))+10+rand;
end
plot(X1,Y1,'.r',X2,Y2,'.b',X3,Y3,'.g');
end

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章