function A = multipliers(varargin)
% MULTIPLIERS Application M-file for multipliers.fig
% FIG = MULTIPLIERS launch multipliers GUI.
% MULTIPLIERS('callback_name', ...) invoke the named callback.
% Last Modified by GUIDE v2.0 21-Jul-2002 02:16:11
if nargin == 0 % LAUNCH GUI
fig = openfig(mfilename,'reuse');
movegui(fig,'center');
% Generate a structure of handles to pass to callbacks, and store it.
handles = guihandles(fig);
handles.a=0;
handles.b=1;
handles.c=1;
handles.d=1;
handles.e=1;
handles.f=0;
handles.g=1;
handles.h=1;
handles.x=1;
handles.array1=[ handles.a handles.b handles.c handles.e handles.d handles.f handles.h handles.g handles.x -handles.x handles.x handles.x -handles.x -handles.x handles.x -handles.x ;
-handles.b handles.a handles.e -handles.c handles.f -handles.d handles.g -handles.h -handles.x -handles.x handles.x -handles.x -handles.x handles.x -handles.x -handles.x ;
-handles.c -handles.e handles.a handles.b handles.h -handles.g -handles.d handles.f handles.x -handles.x -handles.x -handles.x handles.x handles.x handles.x -handles.x ;
-handles.e handles.c -handles.b handles.a -handles.g -handles.h handles.f handles.d -handles.x -handles.x -handles.x handles.x handles.x -handles.x -handles.x -handles.x ;
-handles.d -handles.f -handles.h handles.g handles.a handles.b handles.c -handles.e -handles.x handles.x -handles.x -handles.x -handles.x -handles.x handles.x -handles.x ;
-handles.f handles.d handles.g handles.h -handles.b handles.a -handles.e -handles.c handles.x handles.x -handles.x handles.x -handles.x handles.x -handles.x -handles.x ;
-handles.h -handles.g handles.d -handles.f -handles.c handles.e handles.a handles.b -handles.x handles.x handles.x handles.x handles.x handles.x handles.x -handles.x ;
-handles.g handles.h -handles.f -handles.d handles.e handles.c -handles.b handles.a handles.x handles.x handles.x -handles.x handles.x -handles.x -handles.x -handles.x ;
-handles.x handles.x -handles.x handles.x handles.x -handles.x handles.x -handles.x handles.a handles.b handles.c handles.g handles.d handles.e handles.f handles.h ;
handles.x handles.x handles.x handles.x -handles.x -handles.x -handles.x -handles.x -handles.b handles.a handles.g -handles.c handles.e -handles.d handles.h -handles.f ;
-handles.x -handles.x handles.x handles.x handles.x handles.x -handles.x -handles.x -handles.c -handles.g handles.a handles.b handles.f -handles.h -handles.d handles.e ;
-handles.x handles.x handles.x -handles.x handles.x -handles.x -handles.x handles.x -handles.g handles.c -handles.b handles.a -handles.h -handles.f handles.e handles.d ;
handles.x handles.x -handles.x -handles.x handles.x handles.x -handles.x -handles.x -handles.d -handles.e -handles.f handles.h handles.a handles.b handles.c -handles.g ;
handles.x -handles.x -handles.x handles.x handles.x -handles.x -handles.x handles.x -handles.e handles.d handles.h handles.f -handles.b handles.a -handles.g -handles.c ;
-handles.x handles.x -handles.x handles.x -handles.x handles.x -handles.x handles.x -handles.f -handles.h handles.d -handles.e -handles.c handles.g handles.a handles.b ;
handles.x handles.x handles.x handles.x handles.x handles.x handles.x handles.x -handles.h handles.f -handles.e -handles.d handles.g handles.c -handles.b handles.a ];
handles.array_backup=handles.array1;
guidata(fig, handles);
W1_string=int2str(handles.array1);
set(handles.txtFirstDesign,'String',W1_string);
% Wait for callbacks to run and window to be dismissed:
uiwait(fig);
if ~ishandle(fig)
A=0;
else
handles=guidata(fig);
A=handles.array1;
delete(fig);
end
%if nargout > 0
% varargout{1} = fig;
%end
elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK
try
[varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard
catch
disp(lasterr);
end
end
%| ABOUT CALLBACKS:
%| GUIDE automatically appends subfunction prototypes to this file, and
%| sets objects' callback properties to call them through the FEVAL
%| switchyard above. This comment describes that mechanism.
%|
%| Each callback subfunction declaration has the following form:
%| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES, VARARGIN)
%|
%| The subfunction name is composed using the object's Tag and the
%| callback type separated by '_', e.g. 'slider2_Callback',
%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.
%|
%| H is the callback object's handle (obtained using GCBO).
%|
%| EVENTDATA is empty, but reserved for future use.
%|
%| HANDLES is a structure containing handles of components in GUI using
%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This
%| structure is created at GUI startup using GUIHANDLES and stored in
%| the figure's application data using GUIDATA. A copy of the structure
%| is passed to each callback. You can store additional information in
%| this structure at GUI startup, and you can change the structure
%| during callbacks. Call guidata(h, handles) after changing your
%| copy to replace the stored original so that subsequent callbacks see
%| the updates. Type "help guihandles" and "help guidata" for more
%| information.
%|
%| VARARGIN contains any extra arguments you have passed to the
%| callback. Specify the extra arguments by editing the callback
%| property in the inspector. By default, GUIDE sets the property to:
%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo))
%| Add any extra arguments after the last argument, before the final
%| closing parenthesis.
% --------------------------------------------------------------------
function varargout = sldA_Callback(h, eventdata, handles, varargin)
a=get(handles.sldA,'Value');
handles.a=a;
guidata(gcbo,handles);
set(handles.edtA,'String',a);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
% --------------------------------------------------------------------
function varargout = sldB_Callback(h, eventdata, handles, varargin)
global A;
b=get(handles.sldB,'Value');
handles.b=b;
guidata(gcbo,handles);
set(handles.edtB,'String',b);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
% --------------------------------------------------------------------
function varargout = sldC_Callback(h, eventdata, handles, varargin)
c=get(handles.sldC,'Value');
handles.c=c;
guidata(gcbo,handles);
set(handles.edtC,'String',c);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
% --------------------------------------------------------------------
function varargout = sldD_Callback(h, eventdata, handles, varargin)
d=get(handles.sldD,'Value');
handles.d=d;
guidata(gcbo,handles);
set(handles.edtD,'String',d);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
% --------------------------------------------------------------------
function varargout = sldE_Callback(h, eventdata, handles, varargin)
e=get(handles.sldE,'Value');
handles.e=e;
guidata(gcbo,handles);
set(handles.edtE,'String',e);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
% --------------------------------------------------------------------
function varargout = sldF_Callback(h, eventdata, handles, varargin)
f=get(handles.sldF,'Value');
handles.f=f;
guidata(gcbo,handles);
set(handles.edtF,'String',f);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
% --------------------------------------------------------------------
function varargout = sldG_Callback(h, eventdata, handles, varargin)
g=get(handles.sldG,'Value');
handles.g=g;
guidata(gcbo,handles);
set(handles.edtG,'String',g);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
% --------------------------------------------------------------------
function varargout = sldH_Callback(h, eventdata, handles, varargin)
h=get(handles.sldH,'Value');
handles.h=h;
guidata(gcbo,handles);
set(handles.edtH,'String',h);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
% --------------------------------------------------------------------
function varargout = sldX_Callback(h, eventdata, handles, varargin)
x=get(handles.sldX,'Value');
handles.x=x;
guidata(gcbo,handles);
set(handles.edtX,'String',x);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
function varargout = RefreshArray(h, eventdata, handles, varargin)
if get(handles.rdbFirstDesign,'Value')==1
handles.array1=[ handles.a handles.b handles.c handles.e handles.d handles.f handles.h handles.g handles.x -handles.x handles.x handles.x -handles.x -handles.x handles.x -handles.x ;
-handles.b handles.a handles.e -handles.c handles.f -handles.d handles.g -handles.h -handles.x -handles.x handles.x -handles.x -handles.x handles.x -handles.x -handles.x ;
-handles.c -handles.e handles.a handles.b handles.h -handles.g -handles.d handles.f handles.x -handles.x -handles.x -handles.x handles.x handles.x handles.x -handles.x ;
-handles.e handles.c -handles.b handles.a -handles.g -handles.h handles.f handles.d -handles.x -handles.x -handles.x handles.x handles.x -handles.x -handles.x -handles.x ;
-handles.d -handles.f -handles.h handles.g handles.a handles.b handles.c -handles.e -handles.x handles.x -handles.x -handles.x -handles.x -handles.x handles.x -handles.x ;
-handles.f handles.d handles.g handles.h -handles.b handles.a -handles.e -handles.c handles.x handles.x -handles.x handles.x -handles.x handles.x -handles.x -handles.x ;
-handles.h -handles.g handles.d -handles.f -handles.c handles.e handles.a handles.b -handles.x handles.x handles.x handles.x handles.x handles.x handles.x -handles.x ;
-handles.g handles.h -handles.f -handles.d handles.e handles.c -handles.b handles.a handles.x handles.x handles.x -handles.x handles.x -handles.x -handles.x -handles.x ;
-handles.x handles.x -handles.x handles.x handles.x -handles.x handles.x -handles.x handles.a handles.b handles.c handles.g handles.d handles.e handles.f handles.h ;
handles.x handles.x handles.x handles.x -handles.x -handles.x -handles.x -handles.x -handles.b handles.a handles.g -handles.c handles.e -handles.d handles.h -handles.f ;
-handles.x -handles.x handles.x handles.x handles.x handles.x -handles.x -handles.x -handles.c -handles.g handles.a handles.b handles.f -handles.h -handles.d handles.e ;
-handles.x handles.x handles.x -handles.x handles.x -handles.x -handles.x handles.x -handles.g handles.c -handles.b handles.a -handles.h -handles.f handles.e handles.d ;
handles.x handles.x -handles.x -handles.x handles.x handles.x -handles.x -handles.x -handles.d -handles.e -handles.f handles.h handles.a handles.b handles.c -handles.g ;
handles.x -handles.x -handles.x handles.x handles.x -handles.x -handles.x handles.x -handles.e handles.d handles.h handles.f -handles.b handles.a -handles.g -handles.c ;
-handles.x handles.x -handles.x handles.x -handles.x handles.x -handles.x handles.x -handles.f -handles.h handles.d -handles.e -handles.c handles.g handles.a handles.b ;
handles.x handles.x handles.x handles.x handles.x handles.x handles.x handles.x -handles.h handles.f -handles.e -handles.d handles.g handles.c -handles.b handles.a ];
elseif get(handles.rdbSecondDesign,'Value')==1
handles.array1=[ handles.a handles.b handles.c handles.e handles.d 0 -handles.f 0 handles.g handles.h handles.h handles.g -handles.h -handles.g handles.g handles.h
-handles.b handles.a handles.e -handles.c 0 -handles.d 0 handles.f handles.h -handles.g handles.g -handles.h -handles.g handles.h handles.h -handles.g
-handles.c -handles.e handles.a handles.b -handles.f 0 -handles.d 0 handles.h -handles.g -handles.g handles.h handles.g -handles.h handles.h -handles.g
-handles.e handles.c -handles.b handles.a 0 handles.f 0 handles.d -handles.g -handles.h handles.h handles.g -handles.h -handles.g -handles.g -handles.h
-handles.d 0 handles.f 0 handles.a handles.b handles.c -handles.e -handles.h handles.g -handles.g handles.h -handles.g handles.h handles.h -handles.g
0 handles.d 0 -handles.f -handles.b handles.a -handles.e -handles.c handles.g handles.h handles.h handles.g handles.h handles.g -handles.g -handles.h
handles.f 0 handles.d 0 -handles.c handles.e handles.a handles.b -handles.g -handles.h handles.h handles.g handles.h handles.g handles.g handles.h
0 -handles.f 0 -handles.d handles.e handles.c -handles.b handles.a -handles.h handles.g handles.g -handles.h handles.g -handles.h handles.h -handles.g
-handles.g -handles.h -handles.h handles.g handles.h -handles.g handles.g handles.h handles.a handles.b handles.c handles.f handles.d handles.e 0 0
-handles.h handles.g handles.g handles.h -handles.g -handles.h handles.h -handles.g -handles.b handles.a handles.f -handles.c handles.e -handles.d 0 0
-handles.h -handles.g handles.g -handles.h handles.g -handles.h -handles.h -handles.g -handles.c -handles.f handles.a handles.b 0 0 -handles.d handles.e
-handles.g handles.h -handles.h -handles.g -handles.h -handles.g -handles.g handles.h -handles.f handles.c -handles.b handles.a 0 0 handles.e handles.d
handles.h handles.g -handles.g handles.h handles.g -handles.h -handles.h -handles.g -handles.d -handles.e 0 0 handles.a handles.b handles.c -handles.f
handles.g -handles.h handles.h handles.g -handles.h -handles.g -handles.g handles.h -handles.e handles.d 0 0 -handles.b handles.a -handles.f -handles.c
-handles.g -handles.h -handles.h handles.g -handles.h handles.g -handles.g -handles.h 0 0 handles.d -handles.e -handles.c handles.f handles.a handles.b
-handles.h handles.g handles.g handles.h handles.g handles.h -handles.h handles.g 0 0 -handles.e -handles.d handles.f handles.c -handles.b handles.a ];
else
handles.array1=[ handles.e handles.e handles.a handles.c handles.b handles.d 0 0 handles.f handles.g handles.h handles.x handles.g -handles.f handles.x -handles.h ;
-handles.e handles.e handles.c -handles.a handles.d -handles.b 0 0 handles.g -handles.f -handles.x handles.h -handles.f -handles.g handles.h handles.x ;
-handles.a -handles.c handles.e handles.e 0 0 -handles.b handles.d handles.x handles.h -handles.f handles.g -handles.h handles.x -handles.g -handles.f ;
-handles.c handles.a -handles.e handles.e 0 0 handles.d handles.b -handles.h handles.x handles.g handles.f -handles.x -handles.h -handles.f handles.g ;
-handles.b -handles.d 0 0 handles.e handles.e handles.a -handles.c handles.g handles.f handles.h -handles.x -handles.f handles.g handles.x handles.h ;
-handles.d handles.b 0 0 -handles.e handles.e -handles.c -handles.a handles.f -handles.g handles.x handles.h handles.g handles.f -handles.h handles.x ;
0 0 handles.b -handles.d -handles.a handles.c handles.e handles.e -handles.x handles.h -handles.g handles.f handles.h handles.x handles.f handles.g ;
0 0 -handles.d -handles.b handles.c handles.a -handles.e handles.e -handles.h -handles.x handles.f handles.g -handles.x handles.h handles.g -handles.f ;
-handles.f -handles.g -handles.h -handles.x -handles.g -handles.f -handles.h handles.x handles.e handles.e handles.a 0 handles.b -handles.d handles.c 0 ;
-handles.g handles.f handles.x -handles.h -handles.f handles.g -handles.x -handles.h -handles.e handles.e 0 -handles.a -handles.d -handles.b 0 -handles.c ;
-handles.x -handles.h handles.f -handles.g handles.x -handles.h handles.g -handles.f -handles.a 0 handles.e handles.e handles.c 0 -handles.b -handles.d ;
handles.h -handles.x -handles.g -handles.f handles.h handles.x -handles.f -handles.g 0 handles.a -handles.e handles.e 0 -handles.c -handles.d handles.b ;
-handles.g handles.f -handles.x handles.h handles.f -handles.g -handles.x -handles.h -handles.b handles.d -handles.c 0 handles.e handles.e handles.a 0 ;
handles.f handles.g -handles.h -handles.x -handles.g -handles.f handles.h -handles.x handles.d handles.b 0 handles.c -handles.e handles.e 0 -handles.a ;
handles.h -handles.x handles.g handles.f -handles.h -handles.x -handles.f -handles.g -handles.c 0 handles.b handles.d -handles.a 0 handles.e handles.e ;
handles.x handles.h handles.f -handles.g handles.x -handles.h -handles.g handles.f 0 handles.c handles.d -handles.b 0 handles.a -handles.e handles.e ];
end
guidata(gcbo,handles);
function varargout = RefreshString(h, eventdata, handles, varargin)
W1_string=int2str(handles.array1);
if get(handles.rdbFirstDesign,'Value')==1
set(handles.txtFirstDesign,'String',W1_string);
set(handles.txtSecondDesign,'String','');
set(handles.txtThirdDesign,'String','');
elseif get(handles.rdbSecondDesign,'Value')==1
set(handles.txtFirstDesign,'String','');
set(handles.txtSecondDesign,'String',W1_string);
set(handles.txtThirdDesign,'String','');
else
set(handles.txtFirstDesign,'String','');
set(handles.txtSecondDesign,'String','');
set(handles.txtThirdDesign,'String',W1_string);
end
% --------------------------------------------------------------------
function varargout = rdbFirstDesign_Callback(h, eventdata, handles, varargin)
off1=handles.rdbSecondDesign;
off2=handles.rdbThirdDesign;
mutual_exclude(off1);
mutual_exclude(off2);
off=handles.rdbFirstDesign;
self_exclude(off);
set(handles.sldX,'Enable','off');
set(handles.edtX,'Enable','off');
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
function varargout = rdbSecondDesign_Callback(h, eventdata, handles, varargin)
off1=handles.rdbFirstDesign;
off2=handles.rdbThirdDesign;
mutual_exclude(off1);
mutual_exclude(off2);
off=handles.rdbSecondDesign;
self_exclude(off);
set(handles.sldX,'Enable','off');
set(handles.edtX,'Enable','off');
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
function varargout = rdbThirdDesign_Callback(h, eventdata, handles, varargin)
off1=handles.rdbFirstDesign;
off2=handles.rdbSecondDesign;
mutual_exclude(off1);
mutual_exclude(off2);
off=handles.rdbThirdDesign;
self_exclude(off);
set(handles.sldX,'Enable','on');
set(handles.edtX,'Enable','on');
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));
function mutual_exclude(off)
set(off,'Value',0);
function self_exclude(off)
off_value=get(off,'Value');
if off_value==0
set(off,'Value',1);
end
% --------------------------------------------------------------------
function varargout = btnDone_Callback(h, eventdata, handles, varargin)
W=handles.array1;
if W*W'==14*eye(16)
uiresume(handles.figure1);
else
msgbox({'This is not a valid W(n-2,n)matrix.','Check the element values'},'Error!','help','','','modal');
end
% --------------------------------------------------------------------
function varargout = btnCancel_Callback(h, eventdata, handles, varargin)
handles.array1=0;
guidata(gcbo,handles);
uiresume(handles.figure1);
% --------------------------------------------------------------------
function varargout = psbReset_Callback(h, eventdata, handles, varargin)
handles.array1=handles.array_backup;
handles.a=0;
handles.b=1;
handles.c=1;
handles.d=1;
handles.e=1;
handles.f=0;
handles.g=1;
handles.h=1;
handles.x=1;
guidata(gcbo,handles);
rdbFirstDesign_Callback(h, eventdata, handles);
set(handles.sldA,'Value',0);
set(handles.edtA,'String','0');
set(handles.sldB,'Value',1);
set(handles.edtB,'String','1');
set(handles.sldC,'Value',1);
set(handles.edtC,'String','1');
set(handles.sldD,'Value',1);
set(handles.edtD,'String','1');
set(handles.sldE,'Value',1);
set(handles.edtE,'String','1');
set(handles.sldF,'Value',0);
set(handles.edtF,'String','0');
set(handles.sldG,'Value',1);
set(handles.edtG,'String','1');
set(handles.sldH,'Value',1);
set(handles.edtH,'String','1');
set(handles.sldX,'Value',1);
set(handles.edtX,'String','1');