1 %>@ingroup guigroup mainguis
3 %>@brief Object browser
5 %> Please read IRootLab manual chapter on
objtool (available at http:
7 %> @param classname=
'irdata'
8 function varargout =
objtool(varargin)
9 % Last Modified by GUIDE v2.5 11-Nov-2012 11:16:48
11 % Begin initialization code - DO NOT EDIT
13 gui_State =
struct(
'gui_Name', mfilename, ...
14 'gui_Singleton', gui_Singleton, ...
15 'gui_OpeningFcn', @objtool_OpeningFcn, ...
16 'gui_OutputFcn', @objtool_OutputFcn, ...
17 'gui_LayoutFcn', [] , ...
19 if nargin && ischar(varargin{1})
20 gui_State.gui_Callback = str2func(varargin{1});
24 [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
26 gui_mainfcn(gui_State, varargin{:});
28 % End initialization code - DO NOT EDIT
31 % --- Executes just before
objtool is made visible.
32 function objtool_OpeningFcn(hObject, eventdata, handles, varargin) %#ok<*INUSL>
33 handles.output = hObject;
37 varargin{1} =
'irdata';
40 % Initializes classes list
41 handles.classes = {
'irdata',
'block',
'pre',
'fcon',
'fsel',
'clssr',
'block_cascade_base',
'sgs',
'fsg',
'peakdetector',
'irlog',
'as',
'vectorcomp',
'soitem'};
44 handles.flag_new = [0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]; % Only
irdata cannot be created here
45 for i = 1:length(handles.classes)
46 o = eval([handles.classes{i}
';']);
49 [handles.classtitles, ii] = sort(handles.classtitles);
50 handles.classes = handles.classes(ii);
51 handles.flag_new = handles.flag_new(ii);
52 idx = find(strcmp(varargin{1}, handles.classes));
54 irerror(sprintf('Class ''%s'' not in list!', s));
56 handles.input.rootclassname = varargin{1};
57 handles.input.flag_modal = 0;
58 handles.databuttonclass =
'vis'; %
default data button to be down
59 handles.modebutton =
'properties'; %
default mode button to be down
60 guidata(hObject, handles);
62 guidata(hObject, handles);
64 handles = guidata(hObject);
68 guidata(hObject, handles);
75 % handles = guidata(hObject);
79 function varargout = objtool_OutputFcn(hObject, eventdata, handles)
81 if handles.input.flag_modal
83 uiwait(handles.figure1);
84 handles = guidata(hObject);
85 varargout{1} = handles.output;
89 varargout{1} = output;
92 % Get
default command line output from handles structure
93 varargout{1} = handles.output;
99 %##########################################################################
100 %##########################################################################
101 % Auxiliary functions
108 function handles = find_handles()
109 H = findall(0, 'Name', '
objtool');
113 handles = guidata(H);
117 function a = get_selected_names()
118 handles = find_handles();
122 function a = get_selected_names2()
123 handles = find_handles();
127 function s = get_selected_1stname()
128 handles = find_handles();
132 function s = get_selected_1stname2()
133 handles = find_handles();
149 refresh_modebuttons();
153 function refresh_left()
154 handles = find_handles();
155 set(handles.listbox_classes, 'String', handles.strings_classes);
160 function refresh_middle()
161 handles = find_handles();
166 function refresh_right()
167 handles = find_handles();
169 switch handles.modebutton
171 refresh_actionspanel();
173 refresh_blockspanel();
175 refresh_propertiespanel();
179 % Updates GUI to reflect the
class that is currently selected
181 % -
"New" button (enabled/disabled)
182 function refresh_class()
183 handles = find_handles();
184 onoff = {
'off',
'on'};
185 s = handles.rootclassname;
187 set(handles.figure1,
'Color', o.color);
188 idx = find(strcmp(handles.classes, handles.rootclassname));
189 % set(handles.pushbutton_obj_new,
'Enable', onoff{handles.flag_new(idx)+1});
192 if handles.flag_new(idx) %#ok<FNDSB>
194 set(handles.pushbutton_obj_new,
'String',
'New...');
195 set(handles.pushbutton_obj_save,
'Visible',
'off');
196 p =
get(handles.pushbutton_obj_rename,
'position');
198 set(handles.pushbutton_obj_rename,
'position', p);
199 p =
get(handles.pushbutton_obj_clear,
'position');
201 set(handles.pushbutton_obj_clear,
'position', p);
204 set(handles.pushbutton_obj_new,
'String',
'Load...');
205 set(handles.pushbutton_obj_save,
'Visible',
'on');
206 p =
get(handles.pushbutton_obj_rename,
'position');
208 set(handles.pushbutton_obj_rename,
'position', p);
209 p =
get(handles.pushbutton_obj_clear,
'position');
211 set(handles.pushbutton_obj_clear,
'position', p);
213 set(handles.uipanel_middle,
'Title', sprintf(
'Existing objects of class "%s"', s));
217 % Updates the up/down status of the mode buttons and visibility of corresponding panel
218 function refresh_modebuttons()
219 handles = find_handles();
220 guys = {
'actions',
'blocks',
'properties'};
221 for i = 1:numel(guys)
222 flag = strcmp(handles.modebutton, guys{i});
223 set(handles.([
'togglebutton_', guys{i}]),
'value', flag);
224 set(handles.([
'uipanel_', guys{i}]),
'visible',
iif(flag,
'on',
'off'));
229 % Refreshes actions panel completely
230 function refresh_actionspanel()
231 refresh_databuttons();
236 populate_moreactions();
239 % Refreshes blocks panel
240 function refresh_blockspanel()
241 handles = find_handles();
242 objname = get_selected_1stname();
244 obj = evalin('base', [objname, ';']);
249 if any(
get(handles.listbox_blocks,
'Value') > numel(a))
250 set(handles.listbox_blocks, 'Value', 1);
252 set(handles.listbox_blocks, '
string', a);
255 % Refreshes properties panel
256 function refresh_propertiespanel()
257 handles = find_handles();
262 % - listbox_actions height,
263 % - data buttons visibility, and
264 % - selected data button
"down" status
265 % according to handles.flag_databuttons, handles.handles.databuttonclass
266 function refresh_databuttons()
267 handles = find_handles();
268 flag = handles.flag_databuttons;
269 hei =
iif(flag, 0.5114678899082569, 0.573394495412844);
270 guys = {
'as',
'fext',
'clus',
'pre',
'fcon',
'fsel',
'blmisc',
'block',
'block_cascade_base',
'vis'};
271 s_flag =
iif(flag,
'on',
'off');
272 for i = 1:numel(guys)
273 set(handles.(['pushbutton_', guys{i}]),
'Visible', s_flag);
275 set(handles.([
'pushbutton_', guys{i}]),
'Value', strcmp(handles.databuttonclass, guys{i}));
278 p =
get(handles.listbox_actions,
'position');
280 set(handles.listbox_actions,
'position', p);
283 function refresh_sliders()
284 handles = find_handles();
286 h1 = handles.uipanel_left;
287 p1 = get(h1, 'position');
288 h2 = handles.uipanel_middle;
289 p2 = get(h2, 'position');
290 h3 = handles.uipanel_right;
291 p3 = get(h3, 'position');
299 psl1 = get(handles.slider1, 'position');
300 psl2 = get(handles.slider2, 'position');
302 mark1 = psl1(3)*get(handles.slider1, 'Value')/get(handles.slider1, 'Max') ;
303 mark2 = psl2(1)+psl2(3)*get(handles.slider2, 'Value')/get(handles.slider2, 'Max');
305 % mark2 = 0.5+0.79*get(handles.slider2, 'Value')/get(handles.slider2, 'Max');
308 set(h1, 'position', p1);
312 set(h2, 'position', p2);
315 p3(3) = psl2(1)+psl2(3)-mark2;
316 set(h3, 'position', p3);
327 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
328 % Non-visual, handles-changing %
329 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
332 function set_class(idx)
333 handles = find_handles();
334 s = handles.classes{idx};
335 handles.rootclassname = s;
336 handles.flag_databuttons = strcmp(s,
'irdata');
337 guidata(handles.figure1, handles);
340 % Reads
class list with counts
341 function read_classes()
342 handles = find_handles();
343 a = handles.classtitles;
345 if isfield(handles,
'classcounts')
346 oldcounts = handles.classcounts;
350 counts(i) = numel(aa{i});
351 s =
iif(~isempty(oldcounts) && oldcounts(i) < counts(i),
' **',
'');
352 a{i} = [a{i},
' (', s, int2str(counts(i)), s,
')'];
354 handles.strings_classes = a;
355 handles.classcounts = counts;
356 guidata(handles.figure1, handles);
359 % Reads actions into handles
360 function read_actions()
361 handles = find_handles();
362 classname =
iif(handles.flag_databuttons, handles.databuttonclass, '
block'); % This may come from somewhere else, later
363 objname = get_selected_1stname();
365 obj = evalin('base', [objname, ';']);
373 handles.al = lower(a); %
for filtering
374 handles.actionslist = list;
375 handles.idxs_in = 1:numel(list); % Indexes of list elements to show
376 guidata(handles.figure1, handles);
379 % Makes handles.idxs_in
380 function filter_actions()
381 handles = find_handles();
382 filter =
fel(get(handles.edit_filter, 'String'));
384 filter = lower(filter);
385 idxs = find(cellfun(@(x) (~isempty(x)), cellfun(@(x) (findstr(filter, x)), handles.al, 'UniformOutput', 0))); %
#ok<FSTR>
386 b = zeros(1, numel(handles.a));
387 for i = 1:numel(idxs)
388 if handles.actionslist(idxs(i)).flag_final
390 ob = handles.actionslist(idxs(i));
395 ob = handles.actionslist(ob.parentindex);
400 handles.idxs_in = find(b);
402 handles.idxs_in = 1:numel(handles.a);
404 guidata(handles.figure1, handles);
407 % Reads moreactions into handles
408 function read_moreactions()
409 handles = find_handles();
410 blockname = get_selected_1stname();
412 if ~isempty(blockname)
413 block = evalin('base', [blockname, ';']);
415 freshobj = eval([cla, ';']);
416 ma = unique(freshobj.moreactions);
423 handles.moreactions_methods = la; % Keeps list of methods
for reference
424 handles.moreactions_descriptions = ma; % Keeps list of methods
for reference
425 guidata(handles.figure1, handles);
435 %%%%%%%%%%%%%%%%%%%%%
436 % Dumb GUI updaters %
437 %%%%%%%%%%%%%%%%%%%%%
438 % (these functions don
't know why they are doing what they are doing)
441 % Populates actions listbox
442 function populate_actions()
443 handles = find_handles();
444 if get(handles.listbox_actions, 'Value
') > numel(handles.idxs_in)
445 set(handles.listbox_actions, 'Value
', 1);
447 set(handles.listbox_actions, 'String
', handles.a(handles.idxs_in));
450 % Populates moreactions listbox
451 function populate_moreactions()
452 handles = find_handles();
453 ma = handles.moreactions_descriptions;
454 if get(handles.listbox_moreactions, 'Value
') > numel(ma)
455 set(handles.listbox_moreactions, 'Value
', 1);
457 set(handles.listbox_moreactions, 'String
', ma);
460 function move_popup(idx)
461 handles = find_handles();
462 set(handles.listbox_classes, 'Value
', idx);
465 function objtool_status(s)
466 handles = find_handles();
470 set(handles.text_status, 'String
', s);
476 %%%%%%%%%%%%%%%%%%%%%
477 % Callback handlers %
478 %%%%%%%%%%%%%%%%%%%%%
479 % (These functions to everything that needs to be done in response to some user's action)
482 function do_moreactions()
483 handles = find_handles();
484 if ~isempty(handles.moreactions_methods)
485 v = get(handles.listbox_moreactions, 'Value');
487 s_action = handles.moreactions_methods{v};
488 blockname = get_selected_1stname();
491 og.blockname = blockname;
492 og.flag_leave_block = 0;
494 og = og.m_generic(s_action);
495 og = og.finish(); %#ok<NASGU>
499 objtool_status(ME.message);
506 function do_actions(what)
507 handles = find_handles();
508 if ~isempty(handles.idxs_in)
509 v = get(handles.listbox_actions, 'Value');
511 which = handles.idxs_in(v);
512 item = handles.actionslist(which);
514 msgbox('Please select a deepest-level option!');
516 classname = handles.actionslist(which).name;
518 objnames = get_selected_names();
519 objs = cellfun(@(objname) (evalin('base', [objname, ';'])), objnames, 'UniformOutput', 0);
523 vis = eval([classname,
';']);
528 og.classname = classname;
529 og.dsnames = objnames;
530 og.params = result.params;
531 og.flag_leave_block = 1;
544 % There is no need to refresh, because we don't expect the workspace to change out of visualization
553 objtool_status(ME.message);
562 function do_block(what)
563 blockname = get_selected_1stname2();
564 if ~isempty(blockname)
566 dsnames = get_selected_names();
569 og.blockname = blockname;
570 og.dsnames = dsnames;
571 og.flag_leave_block = 0;
573 if ismember(what, {
'boot',
'train',
'use'})
574 og = og.([
'm_', what])();
578 og = og.finish(); %#ok<NASGU>
582 objtool_status(ME.message);
586 objtool_status(
'Cannot do anything: no block selected!');
591 function set_databutton(s)
593 handles = find_handles();
594 handles.databuttonclass = s;
595 guidata(handles.figure1, handles);
599 refresh_databuttons();
602 function set_modebutton(s)
603 handles = find_handles();
604 handles.modebutton = s;
605 guidata(handles.figure1, handles);
606 refresh_modebuttons();
613 handles = find_handles();
614 idx = find(strcmp(handles.classes, handles.rootclassname));
615 if handles.flag_new(idx) %
#ok<FNDSB>
626 objtool_status(ME.message);
634 global PATH; %#ok<*TLEV>
635 global ATRTOOL_LOAD_OK ATRTOOL_LOAD_RANGE;
637 % % % types = {
'mat',
'txt'};
638 [name, path, filterindex] = uigetfile({
'*.*',
'Auto-detect file type'; ...
639 '*.*',
'MAT IRootLab format'; ...
640 '*.*',
'TXT IRootLab format'; ...
641 '*.*',
'TXT "Pirouette-like" format'; ...
642 '*.*',
'TXT Basic format'; ...
643 '*.*',
'OPUS FPA image format (image)'; ...
644 '*.*',
'DPT Data point table format (image)'; ...
645 '*.*',
'TXT "Pirouette-like" format (image)'; ...
646 '*.*',
'TXT Basic format (image)'; ...
647 },
'Select file to open', PATH.data_load); %#ok<*NASGU>
650 name_full = fullfile(path, name);
653 if isempty(classname)
654 irerrordlg(sprintf('Could not detect type of file ''%s''', name), 'Sorry');
658 suff = {
'mat',
'txt_irootlab',
'txt_pir',
'txt_basic',
'opus_nasse',
'txt_dpt', ...
659 'txt_pir_image',
'txt_basic_image'};
660 classname = [
'dataio_', suff{filterindex-1}];
663 % Either way, will update the path
664 PATH.data_load = path;
668 oio = eval(classname);
669 oio.filename = name_full;
671 % % % % % % Very old code to ask
for wavenumber range
for TXT Basic format
672 % % % % % s_range =
'';
673 % % % % %
if ~oio.flag_xaxis
674 % % % % % datatool_fearange();
675 % % % % %
if ~isempty(ATRTOOL_LOAD_OK)
676 % % % % % s_range =
'';
677 % % % % %
if ~isempty(ATRTOOL_LOAD_RANGE)
678 % % % % % s_range = [mat2str(ATRTOOL_LOAD_RANGE)]; %#ok<NBRAK>
681 % % % % % flag_continue = 0;
686 % % % %
if flag_continue
691 pp = oio.get_params(oio);
695 if numel(pp.params) > 0
696 eval([
'oio = oio.setbatch(',
params2str(pp.params),
');']); % Why
this line? Check
for errors?
697 yetmore = [
'o = o.setbatch(',
params2str(pp.params),
');', 10];
704 code = sprintf(
'o = %s();\no.filename = ''%s'';\n%s%s = o.load();\n', classname, name_full, yetmore, name_new);
714 objtool_status(ME.message);
722 %#########################################
723 %#########################################
726 function listbox_classes_Callback(hObject, eventdata, handles)
727 if strcmp(get(handles.figure1, 'SelectionType'), 'open') % This is how you detect a
double-click in MATLAB
730 set_class(get(handles.listbox_classes, 'Value'));
736 function listbox_objects_Callback(hObject, eventdata, handles)
740 function pushbuttonRefreshMS_Callback(hObject, eventdata, handles)
744 function pushbutton_obj_rename_Callback(hObject, eventdata, handles)
746 s = get_selected_1stname();
753 objtool_status(ME.message);
759 function pushbutton_obj_clear_Callback(hObject, eventdata, handles)
761 names = get_selected_names();
764 code = sprintf('clear %s;\n', sprintf('%s ', names{:}));
769 objtool_status(ME.message);
775 function pushbutton_obj_new_Callback(hObject, eventdata, handles)
779 function togglebutton_actions_Callback(hObject, eventdata, handles)
780 set_modebutton('actions');
783 function togglebutton_properties_Callback(hObject, eventdata, handles)
784 set_modebutton('properties');
787 function listbox_actions_Callback(hObject, eventdata, handles)
788 if strcmp(get(handles.figure1, 'SelectionType'), 'open') % This is how you detect a
double-click in MATLAB
793 function listbox_moreactions_Callback(hObject, eventdata, handles)
794 if strcmp(get(handles.figure1, 'SelectionType'), 'open') % This is how you detect a
double-click in MATLAB
799 function pushbutton_create_defaults_Callback(hObject, eventdata, handles)
804 function edit_filter_Callback(hObject, eventdata, handles)
809 function pushbutton_vis_Callback(hObject, eventdata, handles)
810 set_databutton('
vis');
813 function pushbutton_fcon_Callback(hObject, eventdata, handles)
814 set_databutton('
fcon');
817 function pushbutton_pre_Callback(hObject, eventdata, handles)
818 set_databutton('
pre');
821 function pushbutton_blmisc_Callback(hObject, eventdata, handles)
825 function pushbutton_fsel_Callback(hObject, eventdata, handles)
826 set_databutton('
fsel');
829 function pushbutton_block_cascade_base_Callback(hObject, eventdata, handles)
833 function pushbutton_block_Callback(hObject, eventdata, handles)
834 set_databutton('
block');
837 function pushbutton_as_Callback(hObject, eventdata, handles)
838 set_databutton('
as');
841 function pushbutton_fext_Callback(hObject, eventdata, handles)
842 set_databutton('
fext');
845 function pushbutton_clus_Callback(hObject, eventdata, handles)
846 set_databutton('
clus');
849 function togglebutton_blocks_Callback(hObject, eventdata, handles)
850 set_modebutton('blocks');
853 function listbox_blocks_Callback(hObject, eventdata, handles)
855 if strcmp(get(handles.figure1, 'SelectionType'), 'open') % This is how you detect a
double-click in MATLAB
861 function edit_properties_Callback(hObject, eventdata, handles)
865 function pushbutton_obj_save_Callback(hObject, eventdata, handles)
869 dsname = get_selected_1stname();
871 objtool_status('No dataset to save!');
874 ds = evalin('base', [dsname ';']);
875 [pa, na, ex] = fileparts(ds.filename);
877 classnames = {
'dataio_mat',
'dataio_txt_irootlab',
'dataio_txt_pir',
'dataio_txt_basic',
'dataio_txt_libsvm',
'dataio_txt_irootlab2'};
878 [name, path, filterindex] = uiputfile({
'*.mat',
'MAT file (*.mat)'; ...
879 '*.txt',
'TXT file (IRootLab format) (*.txt)'; ...
880 '*.txt',
'TXT file (pir format) (*.txt)'; ...
881 '*.txt',
'TXT file (basic format) (*.txt)'; ...
882 '*.txt',
'TXT file (LIBSVM format) (*.txt)'; ...
883 '*.txt',
'TXT file (IRootLab format with labelled classes) (*.txt)'; ...
884 },
'Save as', fullfile(PATH.data_save, [na,
'.mat'])); % Extension is changed to
"mat" because it is first option in
menu
887 filename = fullfile(path, name);
888 o = eval(classnames{filterindex}); % creates instance of some
dataio class
892 % If reached
this point, will celebrate and write the path as
default data path to the setup file
893 PATH.data_save = path;
897 objtool_status(ME.message);
902 function pushbutton_filter_enter_Callback(hObject, eventdata, handles)
907 function pushbutton_filter_clear_Callback(hObject, eventdata, handles)
908 set(handles.edit_filter, '
string', '');
913 function pushbutton_block_clear_Callback(hObject, eventdata, handles)
915 names = get_selected_names2();
918 code = sprintf('clear %s;\n', sprintf('%s ', names{:}));
923 objtool_status(ME.message);
929 function pushbutton_block_use_Callback(hObject, eventdata, handles)
933 function pushbutton_block_train_Callback(hObject, eventdata, handles)
935 s = get_selected_1stname2();
937 o = evalin('base', [s, ';']); % gets
object to see if it is trainable
938 if o.flag_trainable < 1
939 objtool_status('Cannot train: block not trainable!');
944 objtool_status('Cannot train: no block selected!');
948 function pushbutton_block_boot_Callback(hObject, eventdata, handles)
950 s = get_selected_1stname2();
952 o = evalin('base', [s, ';']); % gets
object to see if it is bootable
953 if o.flag_bootable < 1
954 objtool_status('Cannot boot: block not bootable!');
959 objtool_status('Cannot boot: no block selected!');
964 function pushbutton_block_rename_Callback(hObject, eventdata, handles)
966 s = get_selected_1stname2();
973 objtool_status(ME.message);
979 function pushbutton_actions_ct_Callback(hObject, eventdata, handles)
983 function pushbutton_actions_c_Callback(hObject, eventdata, handles)
987 function pushbutton_actions_ctu_Callback(hObject, eventdata, handles)
991 function pushbutton_moreactions_execute_Callback(hObject, eventdata, handles)
996 function listbox_objects_CreateFcn(hObject, eventdata, handles)
997 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
998 set(hObject,'BackgroundColor','white');
1000 function listbox_classes_CreateFcn(hObject, eventdata, handles) %
#ok<*INUSD,*DEFNU>
1001 if ispc && isequal(
get(hObject,
'BackgroundColor'),
get(0,
'defaultUicontrolBackgroundColor'))
1002 set(hObject,'BackgroundColor','white');
1004 function listbox_actions_CreateFcn(hObject, eventdata, handles)
1005 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
1006 set(hObject,'BackgroundColor','white');
1008 function listbox_moreactions_CreateFcn(hObject, eventdata, handles)
1009 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
1010 set(hObject,'BackgroundColor','white');
1012 function edit_filter_CreateFcn(hObject, eventdata, handles)
1013 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
1014 set(hObject,'BackgroundColor','white');
1016 function edit_filter_KeyPressFcn(hObject, eventdata, handles)
1017 function listbox_blocks_CreateFcn(hObject, eventdata, handles)
1018 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
1019 set(hObject,'BackgroundColor','white');
1021 function slider1_Callback(hObject, eventdata, handles)
1023 function slider1_CreateFcn(hObject, eventdata, handles)
1024 if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
1025 set(hObject,'BackgroundColor',[.9 .9 .9]);
1027 function slider2_Callback(hObject, eventdata, handles)
1029 function slider2_CreateFcn(hObject, eventdata, handles)
1030 if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
1031 set(hObject,'BackgroundColor',[.9 .9 .9]);
1033 function edit_properties_CreateFcn(hObject, eventdata, handles)
1034 if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
1035 set(hObject,'BackgroundColor','white');
function classmap_get_list(in classname, in inputclass)
function send_error(in ME)
Feature Selection (FSel) class.
function detect_file_type(in filename)
function show_description(in h_list, in h_edit)
function params2str(in params, in flag_o)
Visualization base class.
function listbox_get_selected_1stname(in h_listbox)
Pre-processing block base class.
Feature Extraction (Fext) base class.
function m_generic(in o, in what)
function get_varnames(in classname, in input)
Feature Construction (FCon) base class.
function get_varnames2(in classnames)
function iif(in cond, in x1, in x2)
function ircode_eval(in s, in title)
Dataset loader/saver common class.
Property classtitle
Class Title. Should have a descriptive name, as short as possible.
function listbox_load_from_workspace(in classname, in h_list, in flag_blank, in string_empty, in input)
function listbox_get_selected_names(in h_listbox)
function gui_set_position(in hObject)
function get_params(in o, in data)
Calls Parameters GUI.
function itemlist2cell(in list, in verboselevel, in style)
Converts an array of mapitem objects to a cell of indented strings.
Analysis Session (AS) base class.
function create_default_objects()
function find_varname(in prefix)
function irerrordlg(in errorstring, in dlgname)
Cascade block: sequence of blocks represented by a block.
function rename_object(in s)
MATLAB code generation to create, boot, train and use blocks.