Adding multiple items in GUI listbox?

7 次查看(过去 30 天)
Hello Everyone,
I am a newbie at Matlab. I am trying to create a listbox and populate it with audio filenames that is select by the user with upload pushbutton. I did it successfully, however when I try to select a different file by clicking the upload push button, the file names concat. I want the filename in a different line (i.e, value 2 of listbox)
This is what I did!
global SoundNameArray;
[filename, filepath, cCheck] = uigetfile('*.mp3', ... 'Select an audio file','MultiSelect','on');
SoundNameArray = [SoundNameArray filename];
h = msgbox(SoundNameArray);
% Check if the user selected one file or multiple
if(cCheck ~=0)
%Reset selection to first entry
set(handles.select_audio, 'Value', 1);
%Show selected file names in the listbox
set(handles.select_audio,'String', SoundNameArray);
else
end
I would be really grateful if anyone could help. Merry Christmas :)

采纳的回答

Walter Roberson
Walter Roberson 2017-12-26
The third output of uigetfile is the filter index, which will only be 0 if no file is selected.
With multiselect on, the filename will be a simple character vector if only one file is selected but will be a cell array of character vectors if more than one is selected. In order to have your listbox list multiple items you should be passing a cell array of character vectors as the string property. The easiest way to fix the code is to use
SoundNameArray = [SoundNameArray cellstr(fullfile(filepath, filename)) ];
  1 个评论
Nirajan Shrestha
Nirajan Shrestha 2017-12-26
编辑:Nirajan Shrestha 2017-12-26
Thank you, Walter. Your answer helped me and I further found out how it (cell array) can be extracted and changed into string when I used audioread using that filename. Thank you so much. Much appreciated.

请先登录,再进行评论。

更多回答(0 个)

标签

Community Treasure Hunt

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

Start Hunting!

Translated by