0

我有一个 108x3 元胞数组,我需要编写一个函数,该函数将接受一个输入(元胞数组第一列中的一个值)并返回一个字符串作为输出(第三列中的相应值)单元阵列)。

我不知道如何将我的函数与元胞数组链接,或者如何将元胞数组的第一列与第三列与函数链接起来,并将值作为字符串返回。对此的任何帮助将不胜感激。

4

3 回答 3

0

使用containers.Map

>> myMap = containers.Map( map(:,1), map(:,3) );

访问地图

>> myMap( map{4,1} ) 

返回map{4,3}

于 2013-09-09T07:29:54.197 回答
0

如果这应该类似于查找表,那么可能会起作用:

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}]);
于 2013-09-09T07:20:14.207 回答
-2

您还可以将数组定义为全局变量,以便在函数内访问它。

于 2015-07-09T15:33:30.690 回答