📄 new_model.m.svn-base
字号:
function [result] = new_model(model_type, argument, first_arg, second_arg )if nargin < 3 link_mat = argument; argument = 'none';endspecial = false;result.structure = false;result.number_potential_tables = 0;result.all_potentials = false;result.all_variables = false;result.all_internal_potentials = false;result.monitor = false;result.timer = false;result.number_of_runs = 1;result.structure_code = 'none';result.observations{1} = 0;result.internal_potentials_bool = false;result.monitoring_interval = 1.0;if (strcmp (model_type, 'pairwise' ) ) result.type = 'pairwise-discrete'; if (strcmp (argument, 'mrf_all' ) ) special = true; result.structure = true; result.number_vertices = first_arg * second_arg; result.structure_code = strcat( '<structure> (square-lattice) ( ', strcat( num2str(first_arg), ' ') ); result.structure_code = [ result.structure_code ' ' num2str(second_arg) ')' ]; result.link_matrix = zeros(result.number_vertices, result.number_vertices); end if (strcmp (argument, 'mrf' ) ) special = true; %result.structure = true; result.number_vertices = first_arg * second_arg; %result.structure_code = strcat( '<structure> (square-lattice) ( ', strcat( num2str(first_arg), ' ') ); %result.structure_code = [ result.structure_code ' ' num2str(second_arg) ')' ]; %result.structure_code = strcat( result.structure_code, strcat( num2str(second_arg), ')') ); result.link_matrix = zeros(result.number_vertices, result.number_vertices); for i=1:result.number_vertices if ( mod(i,first_arg) ~= 0) result.link_matrix(i,i+1) = 1; end if (i <= first_arg*(second_arg-1) ) result.link_matrix(i,i+first_arg) = 1; end end end if (strcmp (argument, 'fully_connected' ) ) m = first_arg; special = true; result.number_vertices = m; result.link_matrix = zeros(m,m); for i=1:m for j=1:m if (j > i) result.link_matrix(i,j) = 1; end end end end if (strcmp (argument, 'random_all' ) ) result.structure = true; special = true; result.number_vertices = first_arg; result.link_matrix = zeros(result.number_vertices, result.number_vertices); model.structure_code = strcat( '<structure> (random) ( ', strcat( num2str(second_arg), ' )') ); end if (strcmp (argument, 'random' ) ) special = true; result.number_vertices = first_arg; result.link_matrix = zeros(result.number_vertices, result.number_vertices); %model.structure_code = strcat( '<structure> (random) ( ', strcat( %num2str(second_arg), ' )') ); for i=1:result.number_vertices for j=i+1:result.number_vertices if (rand < second_arg) result.link_matrix(i,j) = 1; end end end end if (special == false) % Normal operation (we are given an adjacency matrix) [m,n] = size(link_mat); for i=1:m for j=1:n if link_mat (i,j) == 1 if link_mat (j, i) == 1 error('Wrong link matrix given'); end end end end result.number_vertices = m; result.link_matrix = link_mat; end [m,n] = size(result.link_matrix); if (m ~= n) error ('A problem happened with the link matrix'); end result.link_matrix_table = zeros(m,n);elseif (strcmp (model_type, 'factor' ) ) result.type = 'factorgraph-discrete'; result.number_vertices = link_mat; if (strcmp (argument, 'qmr' ) ) result.structure_code = 'qmr'; result.all_variables = true; result.all_variables_size = 2; endelse error ('Unknown type of model specified');end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -