我有一个 108x3 元胞数组,我需要编写一个函数,该函数将接受一个输入(元胞数组第一列中的一个值)并返回一个字符串作为输出(第三列中的相应值)单元阵列)。
我不知道如何将我的函数与元胞数组链接,或者如何将元胞数组的第一列与第三列与函数链接起来,并将值作为字符串返回。对此的任何帮助将不胜感激。
>> myMap = containers.Map( map(:,1), map(:,3) );
访问地图
>> myMap( map{4,1} )
返回map{4,3}
如果这应该类似于查找表,那么可能会起作用:
function v = getValue(x, map)
[~,loc] = ismember(x, map(:,1)); % find the element in the first column
v = map{loc, 3};
例子:
map = {1, [], 'one';
2, [], 'two';
3, [], 'three'};
>> getValue(2,map)
ans =
two
请注意,如果您的第一列是数字,则必须使用
[~,loc] = ismember(x, [map{:,1}]);
您还可以将数组定义为全局变量,以便在函数内访问它。