导航:首页 > 五金知识 > 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工具箱相关的资料

热点内容
steam令牌换设备了怎么办 浏览:246
新生测听力仪器怎么看结果 浏览:224
化学试验排水集气法的实验装置 浏览:156
家用水泵轴承位置漏水怎么回事 浏览:131
羊水镜设备多少钱一台 浏览:125
机械制图里型钢如何表示 浏览:19
测定空气中氧气含量实验装置如图所示 浏览:718
超声波换能器等级怎么分 浏览:800
3万轴承是什么意思 浏览:110
鑫旺五金制品厂 浏览:861
苏州四通阀制冷配件一般加多少 浏览:153
江北全套健身器材哪里有 浏览:106
水表阀门不开怎么办 浏览:109
花冠仪表盘怎么显示时速 浏览:106
洗砂机多少钱一台18沃力机械 浏览:489
超声波碎石用什么材料 浏览:607
组装实验室制取二氧化碳的简易装置的方法 浏览:165
怎么知道天然气充不了阀门关闭 浏览:902
公司卖旧设备挂什么科目 浏览:544
尚叶五金机电 浏览:59