2014-12-06 222 views
0

我想繪製正態分佈圖,但通過循環繪製同一圖中的多個繪圖。對於第一次迭代,其精確的3個繪圖在一個圖中,但在其他3個圖中繪製只有一個繪圖。這裏是代碼在matlab中通過循環在一個圖中繪製多個圖

load iris.dat; 
iris; 
number_of_features = 4; 
classes = iris(:,5); 
number_of_classes = length(unique(classes)); 

for class_number = 1:number_of_classes 
likelihood{class_number} = struct; 

for feature_number = 1:number_of_features 
    likelihood{class_number}.pd{feature_number} = fitdist(iris(find(iris(:, 5) == class_number),feature_number),'Normal'); 
end 
end 
hold all 
for feature_number = 1:number_of_features 
for class_number=1:number_of_classes 
    ppd=iris(find(iris(:, 5) == class_number),feature_number); 
    y=normpdf(ppd,likelihood{class_number}.pd{feature_number}.mu,likelihood{class_number}.pd{feature_number}.sigma); 
    figure(feature_number) 
    stem(ppd,y) 
end 
end 

請,如果任何人可以檢查,並告訴什麼在代碼

回答

0

這個問題我不知道,但下面的代碼可能會工作。我剛剛改變了你的命令的地方。

load iris.dat; 
iris; 
number_of_features = 4; 
classes = iris(:,5); 
number_of_classes = length(unique(classes)); 

for class_number = 1:number_of_classes 
likelihood{class_number} = struct; 

for feature_number = 1:number_of_features 
    likelihood{class_number}.pd{feature_number} = fitdist(iris(find(iris(:, 5) == class_number),feature_number),'Normal'); 
end 
end 

for feature_number = 1:number_of_features 
figure(feature_number) 
hold on 
for class_number=1:number_of_classes 
    ppd=iris(find(iris(:, 5) == class_number),feature_number); 
    y=normpdf(ppd,likelihood{class_number}.pd{feature_number}.mu,likelihood{class_number}.pd{feature_number}.sigma); 
    stem(ppd,y) 
end 
hold off 
end 
+0

感謝您的迴應,但所有情節都是相同的顏色..我寫了所有不同的顏色,但如何知道哪些顏色分配給哪個類??? – Bangash 2014-12-06 17:05:57

+0

不客氣。你可以在循環之前寫入「color = ['y','m','c','r'];寫入」stem(ppd,y,color(feature_number))「而不是」stem(ppd ,y)「。 – mehmet 2014-12-06 17:18:10

+0

yesss that worked ..thanks很多.. :) – Bangash 2014-12-06 17:43:30

相關問題