matlab課堂作業關於隨機點的一些問題

時間 2021-09-01 20:13:56

1樓:匿名使用者

問題分析

1、【隨機生成點】:直接用rand函式生成點的座標;

2、【點與點隨機連成邊】:用rand函式生成n*n矩陣,大於某設定門限值(例如0.8)則連邊;

3、【計算任意兩點間的最短路徑】,分兩種做法:

(1)隨機取兩點,計算最短路徑,用graphshortestpath函式;

(2)把任意兩點間的最短路徑全部計算出來,形成一個矩陣,用graphallshortestpaths函式。

4、【計算出最小生成樹】:用graphminspantree函式。

其中,graphshortestpath、graphallshortestpaths、graphminspantree均為生物資訊工具箱(bioinformatics toolbox)中的函式。

參考**

匆忙間編寫了一段**,供參考。

% 隨機生成點的數量

n = 10;

% 生成點的座標

x = rand(n, 1); y = rand(n, 1);

% 隨機生成連線關係(隨機數大於門限值為有連線)

l = rand(n, n) > 0.8;

% 計算各節點距離(保留兩位小數)

d = round(squareform(pdist([x y]))*100)/100;

% 用稀疏矩陣表示圖

dg = sparse(d.*l);

% 轉換為無向圖

ug = tril(dg + dg');

% 顯示圖

view(biograph(ug,,'showarrows','off','showweights','on'));

% 計算最小生成樹

st = graphminspantree(ug);

view(biograph(st,,'showarrows','off','showweights','on'))

% 計算所有節點間的最小路徑(兩兩對應)

dist = graphallshortestpaths(ug,'directed',false);

disp(num2str(dist,'  %.2f'))

% 計算任意(隨機選擇)兩個節點間的最小路徑

i = ceil(rand*n); j = ceil(rand*n);

[dist,path,pred] = graphshortestpath(ug,i,j,'directed',false);

% 突出顯示最小路徑

h = view(biograph(ug,,'showarrows','off','showweights','on'));

set(h.nodes(path),'color',[1 0.4 0.4])

fowedges = getedgesbynodeid(h,get(h.nodes(path),'id'));

revedges = getedgesbynodeid(h,get(h.nodes(fliplr(path)),'id'));

edges = [fowedges;revedges];

set(edges,'linecolor',[1 0 0])

set(edges,'linewidth',1.5)

執行結果

1、隨機生成的無向圖:

2、最小生成樹:

3、隨機選擇兩節點,計算最小路徑(節點6和9之間):

4、任意節點間的最小路徑:

0.00  0.70  1.38  1.37  0.69  0.75  0.57  0.06  0.14  0.29

0.70  0.00  1.72  1.52  0.85  1.09  0.85  0.64  0.84  0.44

1.38  1.72  0.00  2.47  1.65  0.63  0.87  1.42  1.42  1.39

1.37  1.52  2.47  0.00  1.49  1.84  1.60  1.31  1.51  1.08

0.69  0.85  1.65  1.49  0.00  1.02  0.78  0.64  0.83  0.41

0.75  1.09  0.63  1.84  1.02  0.00  0.24  0.79  0.79  0.76

0.57  0.85  0.87  1.60  0.78  0.24  0.00  0.55  0.55  0.52

0.06  0.64  1.42  1.31  0.64  0.79  0.55  0.00  0.20  0.23

0.14  0.84  1.42  1.51  0.83  0.79  0.55  0.20  0.00  0.43

0.29  0.44  1.39  1.08  0.41  0.76  0.52  0.23  0.43  0.00

2樓:思孕

如果 說清楚點 我搞得定!

用matlab在平面上 隨機產生幾個點(用座標表示)怎麼程式設計?

3樓:匿名使用者

基本思想:

隨機產生x的座標(向量形式)

隨機產生y的座標(向量形式)

在一平面上使用plot函式畫出這些點

例子:在0到1的平面內隨機產生10個點,並畫出來x=rand(1,10)

y=rand(1,10)

plot(x,y,'*')

4樓:

記得有個rand函式吧,

直接產生一個那麼大的隨機陣列不就行了

課堂作業語文六年級上冊22課,課堂作業語文六年級上冊第21 22課

百小度 21 老人與海鷗 那是一個普通的冬日。我和朋友相約來到翠湖時,海鷗正飛得熱鬧。在喂海鷗的人群中很容易認出那位老人。他背已經駝了,穿一身褪 tu 色的過時布衣,背一個褪色的藍布包,連裝鳥食的大塑料袋也用得褪了色。朋友告訴我,這位老人每天步行二十餘里,從城郊趕到翠湖,只為了給海鷗送餐,跟海鷗相伴...

八年級上冊英語(第一課堂)課堂作業答案

要什麼答案啊。自己寫,用答案抄會一點效果都沒有的。想要有好成績就自己寫,我告訴你平時什麼都不用幹。就上課認真聽講,下課做好作業,就可以取得好成績,我自己的經驗,我現在第一名!還是要看老師改不改啊,老師不給你對答案 那你錯的題就永遠錯著 也一樣沒用。其實答案只要用得對就還好 而且有些題你覺得沒必要花時...

人教版數學六年級下課堂作業本答案

這些題我已經做過了,答案肯定對 1 1 每本的頁數 和 裝訂的本數 裝訂的本書 隨著每本的頁數 的變化而變化 裝訂的本數 每本的頁數 反而增加 2 練習本總量 每本的頁數 裝訂的本數 反比例 3 反,反,正,不成,工總,工時,工效 第4題隨你怎麼寫 自己打的,要採用啊 凌妖沐 1 1 每本的頁數 和...