0

Sum of(ノードに到達する重み)とそれ自体の重みが1に加算されるように、エッジに重みを割り当てたいと思います。

これが私が試したものです:

    clear all;
    close all;
    clc;
    %% building the graph
    g=graph;
    for k=1:6

     add(g,k,k+1)
     add(g,1,4)
     add(g,5,7)
    end
    %%assigining the statuses 0 and 1
    %label(g,1,'0');
    %label(g,2,'1');
    %label(g,3,'1');
    %label(g,4,'1');
    %label(g,5,'1');
    %label(g,6,'0');
    %label(g,7,'0');
    figure,ldraw(g);
    %x=rand(1,1);
    %y=rand(1,1)
    %% get line info from the figure
    lineH = findobj(gca, 'type', 'line');
    xData = cell2mat(get(lineH, 'xdata')); % get x-data
    yData = cell2mat(get(lineH, 'ydata')); % get y-data

    %% if an edge is between (x1,y1)<->(x2,y2), place a label at
    %%the center of the line, i.e. (x1+x2)/2 (y1+y2)/2 etc
    labelposx=mean(xData');
    labelposy=mean(yData');

    %% generate some random weights vectori.e. the probability matrix
    weights=rand(1,1,length(labelposx)) 

    % plot the weights on top of the figure
    text(labelposx,labelposy,mat2cell(weights), 'HorizontalAlignment','center',... 
                                        'BackgroundColor',[.7 .9 .7]);
    %%Transition matrix or markov matrix
    % Transition=[0 (1,2) 0 (1,4) 0 0 0;
    %    (2,1) 0 (2,3) 0 0 0 0;
    %    0 (3,2) 0 (3,4) 0 0 0;
    %    0 0 (4,3) 0 (4,5) 0 0;
    %    0 0 0 (5,4) 0 (5,6) (5,7);
    %    0 0 0 0 (6,5) 0 (6,7);
    %    0 0 0 0 (7,5) (7,6) 0];

    Transition= [0 weights(:,:,8) 0 weights(:,:,6) 0 0 0;
    weights(:,:,8) 0 weights(:,:,7) 0 0 0 0;
    0 weights(:,:,7) 0 weights(:,:,5) 0 0 0;
    weights(:,:,6) 0 weights(:,:,5) 0 weights(:,:,4) 0 0;
    0 0 0 weights(:,:,4) 0 weights(:,:,3) weights(:,:,2);
    0 0 0 0 weights(:,:,3) 0 weights(:,:,1);
    0 0 0 0 weights(:,:,2) weights(:,:,1) 0]
    %set_matrix
    %%dij-- Probability matrix
    sparse(Transition);
    d=[weights(:,:,8);weights(:,:,7);weights(:,:,5);weights(:,:,4);
     weights(:,:,3);weights(:,:,1);weights(:,:,1)]
    %%Si[k]-- matrix of the statuses(labels)
    %S=[0 1 1 1 1 0 0]

グラフ

例:ノード4に来る重みの加算と、それ自体の重みは1に等しくなければなりません。

4

1 に答える 1

0

固定和FEXファイルを備えたこの素敵なランダムベクトルジェネレーターをチェックしてください。これであなたの質問に答えられると思います。このSOリンクの詳細も参照してください。バイアスなしは、n個のランダムな正の数(> = 0)のリストを返し、それらの合計== total_sum

于 2012-11-05T00:05:34.450 に答える