arrayfun出错

时间:2013-11-20 23:48:14

标签: matlab

我有以下功能:

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');

我对错误的位置感到有点困惑,因为函数需要一个参数并且我提供它...

谢谢!

1 个答案:

答案 0 :(得分:0)

您应该在主脚本/函数中执行以下操作:

myVectorB = arrayfun(@dataParser, myVector)

请注意@前面的dataParser:这会将dataParser的函数句柄传递给arrayfun,而不是评估函数dataParser()并传递结果为arrayfun