0001 function [ meanNetworks, allNetworks, stdNetworks ] = makeNetAndAnalysis( inputNetwork, parameter )
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 loadStruct(parameter, 'caller');
0027
0028
0029 inputNetwork.NumConnect = full(sum(sum(inputNetwork.matrix)));
0030 inputNetwork.meanNumEdge = full(mean(sum(inputNetwork.matrix')));
0031
0032
0033 randProb = inputNetwork.NumConnect / (inputNetwork.size^2 - inputNetwork.size);
0034 randNetwork = cell(1, REPEAT_TIMES);
0035 for iTime = 1:REPEAT_TIMES
0036 seedNumber = iTime * STRIDE_SEED_NUMBER;
0037 randNetwork{iTime} = randomNetwork(inputNetwork.size, randProb, seedNumber);
0038 randNetwork{iTime} = setIO(randNetwork{iTime}, ...
0039 inputNetwork.inputNumber, inputNetwork.outputNumber);
0040 randNetwork{iTime} = levelAnalysis(randNetwork{iTime}, MAX_LEVEL);
0041 end
0042
0043 meanRandNet = meanFieldInCells(randNetwork);
0044 stdRandNet = stdFieldInCells(randNetwork);
0045 meanNetworks.meanRandNet = meanRandNet;
0046 stdNetworks.stdRandNet = stdRandNet;
0047 if nargout > 1
0048 allNetworks.randNetwork = randNetwork;
0049 end
0050
0051
0052
0053 smallRingNet = cell(1, REPEAT_TIMES);
0054 for iTime = 1:REPEAT_TIMES
0055 seedNumber = iTime * STRIDE_SEED_NUMBER;
0056 smallRingNet{iTime} = smallWorldNetwork(inputNetwork.size, ...
0057 REWIRE_PROB_RING, seedNumber, inputNetwork.meanNumEdge);
0058 smallRingNet{iTime} = setIO(smallRingNet{iTime}, ...
0059 inputNetwork.inputNumber, inputNetwork.outputNumber);
0060 smallRingNet{iTime} = levelAnalysis(smallRingNet{iTime}, MAX_LEVEL);
0061 end
0062
0063 meanRingNet = meanFieldInCells(smallRingNet);
0064 stdRingNet = stdFieldInCells(smallRingNet);
0065 meanNetworks.meanRingNet = meanRingNet;
0066 stdNetworks.stdRingNet = stdRingNet;
0067 if nargout > 1
0068 allNetworks.smallRingNet = smallRingNet;
0069 end
0070
0071
0072
0073 smallRingDistNet = cell(1, REPEAT_TIMES);
0074 for iTime = 1:REPEAT_TIMES
0075 seedNumber = iTime * STRIDE_SEED_NUMBER;
0076 smallRingDistNet{iTime} = smallWorldNetwork(inputNetwork.size, ...
0077 REWIRE_PROB_RING, seedNumber, inputNetwork.meanNumEdge);
0078 smallRingDistNet{iTime} = setIO(smallRingDistNet{iTime}, ...
0079 inputNetwork.inputNumber, inputNetwork.outputNumber, 'distant');
0080 smallRingDistNet{iTime} = levelAnalysis(smallRingDistNet{iTime}, MAX_LEVEL);
0081 end
0082
0083 meanRingDistNet = meanFieldInCells(smallRingDistNet);
0084 stdRingDistNet = stdFieldInCells(smallRingDistNet);
0085 meanNetworks.meanRingDistNet = meanRingDistNet;
0086 stdNetworks.stdRingDistNet = stdRingDistNet;
0087 if nargout > 1
0088 allNetworks.smallRingDistNet = smallRingDistNet;
0089 end
0090
0091
0092 regularRingNet = cell(1, REPEAT_TIMES);
0093 for iTime = 1:REPEAT_TIMES
0094 seedNumber = iTime * STRIDE_SEED_NUMBER;
0095 regularRingNet{iTime} = smallWorldNetwork(inputNetwork.size, ...
0096 0, seedNumber, inputNetwork.meanNumEdge);
0097 regularRingNet{iTime} = setIO(regularRingNet{iTime}, ...
0098 inputNetwork.inputNumber, inputNetwork.outputNumber);
0099 regularRingNet{iTime} = levelAnalysis(regularRingNet{iTime}, MAX_LEVEL);
0100 end
0101
0102 meanRegularNet = meanFieldInCells(regularRingNet);
0103 stdRegularNet = stdFieldInCells(regularRingNet);
0104 meanNetworks.meanRegularNet = meanRegularNet;
0105 stdNetworks.stdRegularNet = stdRegularNet;
0106 if nargout > 1
0107 allNetworks.regularRingNet = regularRingNet;
0108 end
0109 end