2015-10-27 83 views
0

我有一個文件,該代碼調用createTeamDict.m:MATLAB:沒有足夠的輸入參數(但我通過他們)

function [ team_dict ] = createTeamDict(team_names, team_ids) 
%createTeamDict takes in a cell array of team names and a vector of 
%corresponding team IDs and returns an appropriate dictionary, mapping team 
%names to their IDs 
    team_dict = containers.Map; 
    for i = 1 : length(team_names) 
     team_dict(team_names{i}) = team_ids(i); 
    end 
end 

然後我正在運行的文件,我有:

team_names = {'Trinity', 'SLU', 'Harvard', 'Columbia', 'Rochester', 'Yale', 'Upenn'}; 
team_ids = [11324 11351 11314 11326 11316 11315 11317]; 
team_dict = createTeamDict(team_names, team_ids); 

出於某種原因,當我嘗試運行它,我得到這個錯誤:

「使用createTeamDict(6號線) 沒有足夠的輸入參數錯誤」

任何想法,爲什麼這可能是這種情況?

謝謝,

+0

你確定你當前的工作目錄包含'createTeamDict.m'?在你的命令提示符中輸入'ls',按下ENTER並查看文件是否在那裏。如果不是,則需要確定文件的位置,將工作目錄更改爲該文件所在的位置,然後再次運行該命令。 – rayryeng

+0

順便說一句,沒有必要做一個功能來做到這一點,或循環每個鍵/值對。只需執行'team_dict = containers.Map(team_names,num2cell(team_ids));' – rayryeng

+0

@rayryeng剛剛檢查過ls,它在那裏:( – bclayman

回答

1

與我們的意見,該文件沒有保存。只需保存文件即可使用。

爲了提高效率,不需要遍歷每個鍵/值對,以這種方式創建containers.Map。您可以初始化一組輸入鍵/值對的字典:

team_dict = containers.Map(team_names, num2cell(team_ids)); 

我們得到:

>> team_dict 

team_dict = 

    Map with properties: 

     Count: 7 
     KeyType: char 
    ValueType: double 
相關問題