I have got following set of code - It is basically functioning based on the plot data obtained previously. Main function gets all the data and creates a popupmenu. Nested function help me get histogram for each plot individually.
function pushbuttonhistogram_Callback(hObject, eventdata, handles)
% hObject handle to pushbuttonhistogram (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global filelist;
global subitems_plot;
global subsubitems_plot;
item_index = get(handles.listboxitems, 'Value');
items_list = cellstr(get(handles.listboxitems, 'String'));
item = items_list{item_index};
subitem_index = get(handles.listboxsubitems, 'Value');
subitems_list = cellstr(get(handles.listboxsubitems, 'String'));
subitem = subitems_list{subitem_index};
subsubitem_index = get(handles.listboxsubsubitems, 'Value');
subsubitems_list = cellstr(get(handles.listboxsubsubitems, 'String'));
subsubitem = subsubitems_list{subsubitem_index};
f = figure('Name','Histogram Plot','NumberTitle','off');
figure(f);
len = length(filelist);
ax = axes('Parent',f,'position',[0.13 0.28 0.77 0.54]);
uicontrol('Parent',f,'Style','popupmenu', 'String', filelist, 'Position',[81,54,419,23], 'Callback', @fileselect);
function fileselect(source,event)
val = source.Value;
if isempty(subsubitems_plot)
hist(ax, subitems_plot(:, val));
title(ax, {item;subitem});
else
hist(ax, subsubitems_plot);
title(ax, {item;subitem;subsubitem});
end
end
Problem: Not getting any kind of plot. If I add end after nested functioin am getting error -
Illegal use of reserved keyword "end".
and without 'end' nested function does not connect with main function.

2 件のコメント

Ameer Hamza
Ameer Hamza 2018 年 5 月 2 日
Although not an answer to your question, you can create a separate function file and place it in MATLAB path instead of creating nested function. Another solution is to simply place it as a normal function inside m file of the GUIDE. But it depends on your application, whether a nested function is necessary or not.
Stephen23
Stephen23 2018 年 5 月 2 日
@Ghenji: also note that you should use guidata rather than global variables:

サインインしてコメントする。

 採用された回答

Jan
Jan 2018 年 5 月 2 日

0 投票

The required format is clear: The main functions and nested function must be closed by an "end":
function main
function nested1
end
end
function sub1
end
It seems like there is a missing end anywhere in your code outside the posted part. Please control this by an auto-indentation: Ctrl-A Ctrl-I . Does the last line of the file end in the first column?

1 件のコメント

Ghenji
Ghenji 2018 年 5 月 2 日
編集済み: Ghenji 2018 年 5 月 2 日
Thank you Jan. Seems like putting end at right place was the only problem after all. All sorted now.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で App Building についてさらに検索

製品

質問済み:

2018 年 5 月 2 日

編集済み:

2018 年 5 月 2 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by