爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 3749|回复: 0

[程序设计] 一个简单的程序,请大神帮忙解读一下,让它可读性更强一些

[复制链接]

新浪微博达人勋

发表于 2015-10-22 11:17:57 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
%程序用来计算两点之间的最短距离
%节点矩阵A=[M,N];节点计算是按行计算
function [ZZ, L]=dis_min_two(start_point,end_point, num_ti)
M=5;
N=4;
%开始结束点数
% start_point=1;
% end_point=17;
%节点的总数目=m*n
num_total=M*N;
%需要剔除的节点数目;num_ti=[17]
% num_ti=[9 10 11 12];
start_point_true=-sum(start_point>num_ti)+start_point;
end_point_true=-sum(end_point>num_ti)+end_point;
%待权临接矩阵-W
W=zeros(num_total-length(num_ti),num_total-length(num_ti));
dis_x_y=zeros(num_total-length(num_ti),num_total-length(num_ti));
X=[];     
Y=[];
for i=1:M
    Y=[Y,i*ones(1,N)];
end
for i=1:M
    X=[X,1:N];
end
X(num_ti)=[];
Y(num_ti)=[];
for i=1:num_total-length(num_ti)
    for j=1:num_total-length(num_ti)
       dis_x_y(i,j)=sqrt((X(i)-X(j))^2+(Y(i)-Y(j))^2);
    end
end
W(dis_x_y==1)=1;
W(dis_x_y~=1)=inf;
W(dis_x_y==0)=0;
[L,Z]=dijkstra(W,start_point_true,end_point_true);
for j=1:length(Z)
    ZZ(j)=Z(j)+sum(Z(j)>=num_ti);
    if (sum(ZZ(j)==num_ti))
        ZZ(j)=ZZ(j)+1;
    end
end
for jj=2:length(ZZ)
    if(ZZ(jj)==ZZ(jj-1))
        ZZ(jj)=ZZ(jj)+1;
    end
end
end
里面有一些是学习的注释,希望大神更加详细地帮忙解释一下,我是初学者,渴望得到大神的指导,非常感谢!!!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表