導航:首頁 > 五金知識 > biograph工具箱

biograph工具箱

發布時間:2021-03-02 05:09:36

㈠ MATLAB問題——關於「最短路徑」

可以用生物信息工具箱(Bioinformatics Toolbox)的函數graphallshortestpaths求解。

實例如下:

cm=round(rand(13)*80)*0.1;
I=randperm(13^2);
cm(I(1:145))=0;
UG=sparse(tril(cm+cm'));
bg=biograph(UG,arrayfun(@(i){int2str(i)},1:size(cm,1)),'ShowArrows','off','ShowWeights','on');
view(bg)
p=graphallshortestpaths(UG,'directed',false);
num2str(p,'%6g')

其中,前4行用於隨機生成一個無向圖的數據(懶得輸入你圖中的數了),第5-6行用於顯示圖形,最後兩行顯示各節點之間的最短路徑。

以下是某一次隨機運行得到的結果:

087.510.78.312.47.3101.86.44.76.66.7
8014.42.76.96.66.929.37.83.36.26.3
7.514.4017.115.87.812.916.49.313.812.214.114.2
10.72.717.108.19.34.20.79.75.165.85.9
8.36.915.88.1093.98.89.44.83.65.55.6
12.46.67.89.3905.18.610.669.66.76.8
7.36.912.94.23.95.104.95.50.94.51.61.7
10216.40.78.88.64.9010.45.85.36.56.6
1.89.39.39.79.410.65.510.404.664.84.9
6.47.813.85.14.860.95.84.605.42.52.6
4.73.312.263.69.64.55.365.402.93
6.66.214.15.85.56.71.66.54.82.52.900.1
6.76.314.25.95.66.81.76.64.92.630.10

㈡ matlab這行代碼:P=biograph(G,[],'ShowArrows','on','ShowWeights','on');

這個抄問題其實你只要稍微查一下幫助就明白了。

biograph 是生物信息工具箱(Bioinformatics Toolbox)里的函數,用於創建有向圖對象,基本調用格式是:

BGobj=biograph(CMatrix,NodeIDs,'PropertyName',PropertyValue,...)

其中第一個參數CMatrix是圖的連結矩陣,第二個參數NodeIDs是節點的標識名稱,後面是成對的屬性名/屬性值用於指定圖的相關選項。

在參數說明部分,有一個專門的註解:

Note You must specify NodeIDs if you want to specify property name/value pairs. Set NodeIDs to [] to use the default values of the row/column numbers.

意思就是說,如果要用到後面的那些屬性選項(比如你現在調用的那個語句),就必需指定第二個參數NodeIDs;而如果不知道該怎樣指定,那就將其設為[],這種情況下,會使用默認的行(列)序號作為節點名。

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

問題分析

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

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

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

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

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

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

其中,graphshortestpathgraphallshortestpathsgraphminspantree均為生物信息工具箱(Bioinformatics Toolbox)中的函數。

參考代碼

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

%隨機生成點的數量
N=10;
%生成點的坐標
x=rand(N,1);y=rand(N,1);
%隨機生成連接關系(隨機數大於門限值為有連接)
L=rand(N,N)>0.8;
%計算各節點距離(保留兩位小數)
D=round(squareform(pdist([xy]))*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',[10.40.4])
fowEdges=getedgesbynodeid(h,get(h.Nodes(path),'ID'));
revEdges=getedgesbynodeid(h,get(h.Nodes(fliplr(path)),'ID'));
edges=[fowEdges;revEdges];
set(edges,'LineColor',[100])
set(edges,'LineWidth',1.5)

運行結果

1、隨機生成的無向圖:

0.000.701.381.370.690.750.570.060.140.29
0.700.001.721.520.851.090.850.640.840.44
1.381.720.002.471.650.630.871.421.421.39
1.371.522.470.001.491.841.601.311.511.08
0.690.851.651.490.001.020.780.640.830.41
0.751.090.631.841.020.000.240.790.790.76
0.570.850.871.600.780.240.000.550.550.52
0.060.641.421.310.640.790.550.000.200.23
0.140.841.421.510.830.790.550.200.000.43
0.290.441.391.080.410.760.520.230.430.00

㈣ 圖論最短路問題的Dijkstra演算法與Matlab程序

請先檢查你matlab的版本,這里提示沒有找到該函數。很可能是因為內matlab的版本太老。
由於這個容函數是計算生物學工具箱的,估計早期的版本沒有這個工具箱。

我這個函數是在2008版本下編寫的,用2031a版的是沒問題的。
ps:matlab每一版都會增減和優化一些函數,建議盡可能的保持高版本。

㈤ 為什麼我的matlab中沒有biograph函數呢

您的Matlab版本是,由於這個函數時計算生物學工具箱的,估計早起幫本沒有這個工具箱

閱讀全文

與biograph工具箱相關的資料

熱點內容
鈳銳鍶數控機床怎麼樣 瀏覽:752
邯鄲運順機械有限公司招聘電話是多少 瀏覽:926
淺談電氣裝置的馬達設計規范 瀏覽:433
lyc軸承怎麼看真偽 瀏覽:699
電動閥門失電什麼原因 瀏覽:653
qtq軸承怎麼選 瀏覽:498
女機械帶90什麼遠古套裝 瀏覽:612
35液晶儀表盤是什麼意思 瀏覽:792
自動著脫裝置 瀏覽:825
nw是什麼軸承 瀏覽:757
DN65的管道上安多大的閥門 瀏覽:861
氨製冷閥門打不開怎麼辦 瀏覽:723
機器設備的安全裝置有什麼作用 瀏覽:841
益陽有哪些批發五金建材市場 瀏覽:829
電力系統自動裝置方案設計 瀏覽:593
魅工具箱素材在哪裡下載 瀏覽:672
天然氣用不用關管道閥門嗎 瀏覽:632
電子血糖儀器怎麼操作 瀏覽:10
帶式運輸機傳動裝置的設計圓柱齒輪減速器 瀏覽:743
東成電動工具電焊機 瀏覽:734