matlab練習程式(Prim最小生成樹)

2022-06-12 06:06:08 字數 1346 閱讀 1400

演算法步驟:

1.任意找一頂點加入樹中。

2.尋找所有與樹相鄰的元素,並取其邊權重最小的並且不在樹中的元素入樹。

3.繼續第二步,直到所有元素都入樹。

效果和kruskal演算法是類似的。

]; %已經被標記的元素

k=1; %已經標記的元素個數

a=; %最後產生的最小生成樹

while length(q)~=m

e=;for i=1

:k

for j=1

:n

if g(q(i),j)~=0 &&~biaoji(j,q) %不在數中的元素

e=[e;g(q(i),j) q(i) j];

endend

end[junk index]=min(e(:,1

)); %求與當前標記的所有元素相鄰的權重最小的邊的索引

a=[a;e(index,:)]; %最小生成樹的三元組表示

q=[q e(index,3

)]; k=k+1

; end

biaoji.m

function re=biaoji(j,biao)  %判斷j點是否已被標記

l=length(biao);

for i=1

:l

if j==biao(i)

re=1

; return;

endend

re=0

; return;

end

matlab練習程式(KNN,K最鄰近分類法)

matlab練習程式 knn,k最鄰近分類法 k最鄰近密度估計技術是一種分類方法,不是聚類方法。不是最優方法,實踐中比較流行。通俗但不一定易懂的規則是 1.計算待分類資料和不同類中每乙個資料的距離 歐氏或馬氏 2.選出最小的前k資料個距離,這裡用到選擇排序法。3.對比這前k個距離,找出k個資料中包含...

matlab練習程式(DBSCAN)

和kmeans相比,不需要事先知道資料的類數。以程式設計的角度來考慮,具體演算法流程如下 1.首先選擇乙個待處理資料。2.尋找和待處理資料距離在設定半徑內的資料。3.將找到的半徑內的資料放到乙個佇列中。4.拿佇列頭資料作為當前待處理資料並不斷執行第2步。5.直到遍歷完佇列中所有資料,將這些資料記為一...

matlab練習程式(c c 呼叫matlab)

就我目前了解的c 呼叫matlab有兩種方法。第一種是通過matlab引擎呼叫,也就是這裡用到的方法。第二種是用matlab將m檔案編譯為相應的h lib dll檔案再加以呼叫。使用engine所用到的h和lib檔案基本在d program files matlab r2010b extern裡面,...