clear; clc; % Get Data gbr1 = imread('images/Banana/1.jpg'); gbr2 = imread('images/Banana/2.jpg'); gbr3 = imread('images/Banana/3.jpg'); gbr4 = imread('images/Banana/4.jpg'); gbr5 = imread('images/Banana/5.jpg'); gbr6 = imread('images/Banana/6.jpg'); gbr7 = imread('images/Banana/7.jpg'); gbr8 = imread('images/Banana/8.jpg'); gbr9 = imread('images/Banana/9.jpg'); gbr10 = imread('images/Banana/10.jpg'); gbr11 = imread('images/Kiwi/1.jpg'); gbr12 = imread('images/Kiwi/2.jpg'); gbr13 = imread('images/Kiwi/3.jpg'); gbr14 = imread('images/Kiwi/4.jpg'); gbr15 = imread('images/Kiwi/5.jpg'); gbr16 = imread('images/Kiwi/6.jpg'); gbr17 = imread('images/Kiwi/7.jpg'); gbr18 = imread('images/Kiwi/8.jpg'); gbr19 = imread('images/Kiwi/9.jpg'); gbr20 = imread('images/Kiwi/10.jpg'); gbr21 = imread('images/Orange/1.jpg'); gbr22 = imread('images/Orange/2.jpg'); gbr23 = imread('images/Orange/3.jpg'); gbr24 = imread('images/Orange/4.jpg'); gbr25 = imread('images/Orange/5.jpg'); gbr26 = imread('images/Orange/6.jpg'); gbr27 = imread('images/Orange/7.jpg'); gbr28 = imread('images/Orange/8.jpg'); gbr29 = imread('images/Orange/9.jpg'); gbr30 = imread('images/Orange/10.jpg'); gbr1=double(rgb2gray(gbr1)); gbr2=double(rgb2gray(gbr2)); gbr3=double(rgb2gray(gbr3)); gbr4=double(rgb2gray(gbr4)); gbr5=double(rgb2gray(gbr5)); gbr6=double(rgb2gray(gbr6)); gbr7=double(rgb2gray(gbr7)); gbr8=double(rgb2gray(gbr8)); gbr9=double(rgb2gray(gbr9)); gbr10=double(rgb2gray(gbr10)); gbr11=double(rgb2gray(gbr11)); gbr12=double(rgb2gray(gbr12)); gbr13=double(rgb2gray(gbr13)); gbr14=double(rgb2gray(gbr14)); gbr15=double(rgb2gray(gbr15)); gbr16=double(rgb2gray(gbr16)); gbr17=double(rgb2gray(gbr17)); gbr18=double(rgb2gray(gbr18)); gbr19=double(rgb2gray(gbr19)); gbr20=double(rgb2gray(gbr20)); gbr21=double(rgb2gray(gbr21)); gbr22=double(rgb2gray(gbr22)); gbr23=double(rgb2gray(gbr23)); gbr24=double(rgb2gray(gbr24)); gbr25=double(rgb2gray(gbr25)); gbr26=double(rgb2gray(gbr26)); gbr27=double(rgb2gray(gbr27)); gbr28=double(rgb2gray(gbr28)); gbr29=double(rgb2gray(gbr29)); gbr30=double(rgb2gray(gbr30)); gbr1=reshape(gbr1',1,[]); gbr2=reshape(gbr2',1,[]); gbr3=reshape(gbr3',1,[]); gbr4=reshape(gbr4',1,[]); gbr5=reshape(gbr5',1,[]); gbr6=reshape(gbr6',1,[]); gbr7=reshape(gbr7',1,[]); gbr8=reshape(gbr8',1,[]); gbr9=reshape(gbr9',1,[]); gbr10=reshape(gbr10',1,[]); gbr11=reshape(gbr11',1,[]); gbr12=reshape(gbr12',1,[]); gbr13=reshape(gbr13',1,[]); gbr14=reshape(gbr14',1,[]); gbr15=reshape(gbr15',1,[]); gbr16=reshape(gbr16',1,[]); gbr17=reshape(gbr17',1,[]); gbr18=reshape(gbr18',1,[]); gbr19=reshape(gbr19',1,[]); gbr20=reshape(gbr20',1,[]); gbr21=reshape(gbr21',1,[]); gbr22=reshape(gbr22',1,[]); gbr23=reshape(gbr23',1,[]); gbr24=reshape(gbr24',1,[]); gbr25=reshape(gbr25',1,[]); gbr26=reshape(gbr26',1,[]); gbr27=reshape(gbr27',1,[]); gbr28=reshape(gbr28',1,[]); gbr29=reshape(gbr29',1,[]); gbr30=reshape(gbr30',1,[]); X = [gbr1, gbr2, gbr3, gbr4, gbr5, gbr6, gbr7, gbr8, gbr9, gbr10, gbr11, gbr12, gbr13, gbr14, gbr15, gbr16, gbr17, gbr18, gbr19, gbr20, gbr21, gbr22, gbr23, gbr24, gbr25, gbr26, gbr27, gbr28, gbr29, gbr30]; [n,p] = size(X); Xrata = mean(X) %1. mengurangi setiap variable dengan rata2nya (normalisasi data) for i = 1:n Z(i, :) = X(i, :)-Xrata; end %Menghitung covariance matrix S = cov(X); % varian %Standardization Data for i = 1:n for j = 1:p Zr(i,j) = Z(i,j) / sqrt(S(j,j)); end end %ZR ADALAH HASIL DARI NORMALISASI DATA X (DATA AWAL) %2. Menghitung cov dari data yang sudah direduksi Zcov = cov(Zr); % matrix covarian dari variable hasil normalisasi Zr %3. Menghitung eigen value dan eigen vector dari Zcov [VA, DA] = eig(Zcov); % VA = Eigen Vector ; DA = Eigen Value %4. menghitung komponen utama % Hasil library matlab eig() --> hasil = diagonal utamanya urut dari kecil ke besar % yang diperlukan dari besar ke kecil %mengurutkan hasil eigen (DESC) m = 1 for i = p:-1:1 DA_urut(m,m) = DA(i,i); VA_urut(m,:) = VA(i,:); m = m+1; end %menghitung komponen utama for i = 1:p eValue(i,1) = DA_urut(i,i); end Total = sum(eValue)% total varians dalam data asli yang dapat dijelaskan oleh seluruh komponen utama. % Proporsi kumulatif = mengambil data seberapa persen secara kumulatif yang % dianggap perlu PK = 0; komponen = 0;%jumlah komponen utama yang dipertahankan for j = 1:p proporsiValue(j,:) = eValue(j,1) / Total;%mengukur seberapa besar kontribusi eigenvalue ke-j terhadap varians total data. if(PK < 0.9) % Nilai PK tergantung peneliti --> 0.8 PK = PK + proporsiValue(j, :); komponen = komponen + 1; end end % Mengambil eigen vector dari komponen yang terpilih VA_Komponen = VA_urut(:,1:komponen) % W = variable komponen utama / principal component variable W = Z * VA_Komponen % W ADALAH FINAL DATA YANG DISEBUTKAN DI PDF plot3(W(:,1), W(:,2), W(:,3), '*') % PK < 0.9 %plot(W(:,1), W(:,2), '*') % PK < 0.8 grid on