2013-11-20 51 views
0

我有以下功能:誤差arrayfun

function x = dataParser(y) 

    %// Importing list of places 
    places = textread('UKPlaceNames.txt' ,'%s'); 

    %// Picking two places 

    place = char(places(y)); %// Converting them to an array of chars 
    placeInt = place - 'A' + 1; 
    x = placeInt; 
end 

在一個單獨的功能,我創建:

myVector = 1:6 

,然後調用

myVectorB = arrayfun(dataParser, myVector) 

然而,MATLAB拋出一個錯誤上:

place = char(places(y)); 

指出,沒有足夠的參數,其中

places = textread('test.txt' ,'%s'); 

我有點困惑,錯誤所在,因爲該功能需要一個paramater,我提供它...

謝謝!

+0

'y'的內容是什麼? 'char'函數需要1個輸入,即使它是空的也可以工作 – learnvst

+0

可以顯示dataParser函數的示例嗎?它有什麼作用? – Marcin

+0

函數x = dataParser(y) %導入地點列表 places = textread('UKPlaceNames.txt','%s'); %挑選兩個地方 place = char(places(y)); %將它們轉換爲一個字符數組 placeInt = place - 'A'+ 1; x = placeInt; end – MrD

回答

0

你應該做在你的主腳本/功能如下:

myVectorB = arrayfun(@dataParser, myVector) 

注意在dataParser前面@:此經過的dataParser功能句柄arrayfun,而不是評估功能dataParser()和傳遞結果爲arrayfun