diff toolboxes/FullBNT-1.0.7/netlab3.3/consist.m @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toolboxes/FullBNT-1.0.7/netlab3.3/consist.m	Tue Feb 10 15:05:51 2015 +0000
@@ -0,0 +1,87 @@
+function errstring = consist(model, type, inputs, outputs)
+%CONSIST Check that arguments are consistent.
+%
+%	Description
+%
+%	ERRSTRING = CONSIST(NET, TYPE, INPUTS) takes a network data structure
+%	NET together with a string TYPE containing the correct network type,
+%	a matrix INPUTS of input vectors and checks that the data structure
+%	is consistent with the other arguments.  An empty string is returned
+%	if there is no error, otherwise the string contains the relevant
+%	error message.  If the TYPE string is empty, then any type of network
+%	is allowed.
+%
+%	ERRSTRING = CONSIST(NET, TYPE) takes a network data structure NET
+%	together with a string TYPE containing the correct  network type, and
+%	checks that the two types match.
+%
+%	ERRSTRING = CONSIST(NET, TYPE, INPUTS, OUTPUTS) also checks that the
+%	network has the correct number of outputs, and that the number of
+%	patterns in the INPUTS and OUTPUTS is the same.  The fields in NET
+%	that are used are
+%	  type
+%	  nin
+%	  nout
+%
+%	See also
+%	MLPFWD
+%
+
+%	Copyright (c) Ian T Nabney (1996-2001)
+
+% Assume that all is OK as default
+errstring = '';
+
+% If type string is not empty
+if ~isempty(type)
+  % First check that model has type field
+  if ~isfield(model, 'type')
+    errstring = 'Data structure does not contain type field';
+    return
+  end
+  % Check that model has the correct type
+  s = model.type;
+  if ~strcmp(s, type)
+    errstring = ['Model type ''', s, ''' does not match expected type ''',...
+	type, ''''];
+    return
+  end
+end
+
+% If inputs are present, check that they have correct dimension
+if nargin > 2
+  if ~isfield(model, 'nin')
+    errstring = 'Data structure does not contain nin field';
+    return
+  end
+
+  data_nin = size(inputs, 2);
+  if model.nin ~= data_nin
+    errstring = ['Dimension of inputs ', num2str(data_nin), ...
+	' does not match number of model inputs ', num2str(model.nin)];
+    return
+  end
+end
+
+% If outputs are present, check that they have correct dimension
+if nargin > 3
+  if ~isfield(model, 'nout')
+    errstring = 'Data structure does not conatin nout field';
+    return
+  end
+  data_nout = size(outputs, 2);
+  if model.nout ~= data_nout
+    errstring = ['Dimension of outputs ', num2str(data_nout), ...
+	' does not match number of model outputs ', num2str(model.nout)];
+    return
+  end
+
+% Also check that number of data points in inputs and outputs is the same
+  num_in = size(inputs, 1);
+  num_out = size(outputs, 1);
+  if num_in ~= num_out
+    errstring = ['Number of input patterns ', num2str(num_in), ...
+	' does not match number of output patterns ', num2str(num_out)];
+    return
+  end
+end