2013-11-20 48 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