How Can you redesign this code? Same result but different structure

1 次查看(过去 30 天)
My Code:
clear
format compact
close all
randn('seed',0)
% Definition of mu's and Sigma
% Mean vectors and covariance matrix
m1=[0 2]'; m2=[0 0]'; S1=[4 1.8; 1.8 1]; S2= [4 1.2; 1.2 1];
% Number of data points
n_points_per_class=5000;
% (i) Data point generation
X=[mvnrnd(m1',S1,n_points_per_class); mvnrnd(m2',S2,n_points_per_class)]';
label=[ones(1,n_points_per_class) 2*ones(1,n_points_per_class)];
[l,p]=size(X);
%Plot the data set
figure; plot(X(1,label==1),X(2,label==1),'.b',X(1,label==2),X(2,label==2),'.r'); axis equal
% (ii) Bayes classification of X
% Estimation of a priori probabilities
P1=n_points_per_class/p;
P2=P1;
% Estimation of pdf's for each data point
for i=1:p
p1(i)=(1/(2*pi*sqrt(det(S1))))*exp(-(X(:,i)-m1)'*inv(S1)*(X(:,i)-m1)/2);
p2(i)=(1/(2*pi*sqrt(det(S2))))*exp(-(X(:,i)-m2)'*inv(S2)*(X(:,i)-m2)/2);
end
% Classification of the data points
for i=1:p
if(P1*p1(i)>P2*p2(i))
class(i)=1;
else
class(i)=2;
end
end
% (iii) Error probability estimation
Pe=0; %Probability of error
for i=1:p
if(class(i)~=label(i))
Pe=Pe+1;
end
end
Pe=Pe/p
  2 个评论
Walter Roberson
Walter Roberson 2020-3-29
Questions like that, without explanation of the reason for rewriting, tend to remind me of students who find someone else's code to do a task and want to rewrite it to hide the fact that they copied the solution instead of creating it themselves.
Alice Zurock
Alice Zurock 2020-3-29
编辑:Alice Zurock 2020-3-29
I will update, btw this is only practice on my side. I want to see different perspective about algorithms to improve my capability.

请先登录,再进行评论。

采纳的回答

darova
darova 2020-3-29
You can remove some constants from for loop to speed up your code
This part can be shorter and vectorized
% for i=1:p
% if(P1*p1(i)>P2*p2(i))
% class(i)=1;
% else
% class(i)=2;
% end
% end
ix = P1*p1 > P2*p2
class = ix + 2*~ix;
  4 个评论
Alice Zurock
Alice Zurock 2020-3-30
编辑:Alice Zurock 2020-3-30
https://www.mathworks.com/matlabcentral/answers/513886-how-can-you-redesign-this-code-i-want-to-see-different-perspectives
Thanks, could you look and advise me in this link ??
Alice Zurock
Alice Zurock 2020-3-30
https://www.mathworks.com/matlabcentral/answers/513886-how-can-you-redesign-this-code-i-want-to-see-different-perspectives
Thanks, could you look and advise me in this link ??

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Distribution Plots 的更多信息

产品


版本

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by