2017-04-01 13 views
0

私はmatlabを初めて使用しており、リストボックスに複数のファイルをロードしようとしています。私はこのコードを持っていますが、それは私にこの間違いを示しています。 余分な引数が入力されました。ドキュメントをチェックしてください。 これは私がコードとして持っているものである:あなたのコードではエラーがありますMatlabがリストボックスにファイルをロード中にエラーが発生しました:余分な引数が入力されました

% --- Executes on button press in load. 
function load_Callback(hObject, eventdata, handles) 
% hObject handle to load (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

[flnm, flpth,cCheck]=uigetfile({'*.mp3'},... 
          'File Select',... 
          'Multiset', 'on'); 
%fullpathname=strcat(pathname, filename); 
%text=audioread(fullpathname); 
%set(handles.path_song, 'String',fullpathname);%show full path name in the listbox 

assignin('base','flnm',flnm); 
assignin('base','flpth',flpth); 
assignin('base','cCheck',cCheck); 

%If the user did not press the cancell button 
if(cCheck==0) 
%Reset selection to first entry 
set(handles.playlist,'Value',1); 
%Show selected filenames 
set(handles.playlist,'String',flnm); 
end 
%LIST------------------------Display Files--------------------------------- 

function playlist_Callback(hObject, eventdata, handles) 
% hObject handle to playlist (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: contents = cellstr(get(hObject,'String')) returns playlist contents as cell array 
%  contents{get(hObject,'Value')} returns selected item from playlist 

listStr=get(hObject,'String'); 
listVal=get(hObject,'Value'); 

%Display Selected files 
if(iscell(listStr)) 
    fileName=playlistStr(listVal); 
    fprintf('Selected file:%s\n',fileName); 
else 
    fileName=listStr; 
    fprintf('Selected file:%s\n',fileName); 
end 

答えて

0

:コールで

  • load_Callback cllbackで

    • uigetfileに誤植があります:適切なMultisetMultiselect
    • である必要があります。if(cCheck==0)if(cCheck)であるべきである:ユーザーはOpenプッシュボタン、uigetfile戻りif(iscell(listStr))
      • playlist_Callback

        • 1
      • を押すと、リストの名前は、listStr代わりになければなりませんplaylistStr

      • conditイオンが満たされfprintfcell入力
のために定義されていないので、あなたが char機能を使用して char文字列に cellarrayから選択した項目( listStr(listVal))を変換する必要があります( listStrcellarrayであれば、それはあります)上記のエラーを修正

、2件のコールバック結果:

% --- Executes on button press in load. 
function load_Callback(hObject, eventdata, handles) 
% hObject handle to load (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% [flnm, flpth,cCheck]=uigetfile({'*.txt'},... 
%        'File Select',... 
%        'Multiset', 'on'); 
[flnm, flpth,cCheck]=uigetfile({'*.txt'},... 
          'File Select',... 
          'Multiselect', 'on'); 
%fullpathname=strcat(pathname, filename); 
%text=audioread(fullpathname); 
%set(handles.path_song, 'String',fullpathname);%show full path name in the listbox 

assignin('base','flnm',flnm); 
assignin('base','flpth',flpth); 
assignin('base','cCheck',cCheck); 

%If the user did not press the cancell button 
%If the user did not press the cancell button 
% if(cCheck==0) 
if(cCheck) 
    %Reset selection to first entry 
    set(handles.playlist,'Value',1); 
    %Show selected filenames 
    set(handles.playlist,'String',flnm); 
end 

%LIST------------------------Display Files--------------------------------- 

function playlist_Callback(hObject, eventdata, handles) 
% hObject handle to playlist (see GCBO) 
% eventdata reserved - to be defined in a future version of MATLAB 
% handles structure with handles and user data (see GUIDATA) 

% Hints: contents = cellstr(get(hObject,'String')) returns playlist contents as cell array 
%  contents{get(hObject,'Value')} returns selected item from playlist 

listStr=get(hObject,'String'); 
listVal=get(hObject,'Value'); 

%Display Selected files 
if(iscell(listStr)) 
% % % fileName=playlistStr(listVal); 
    fileName=char(listStr(listVal)); 
    fprintf('Selected file:%s\n',fileName); 
else 
    fileName=listStr; 
    fprintf('Selected file:%s\n',fileName); 
end 

は、この情報がお役に立てば幸いです、

カプロラ '

関連する問題