使用查找填充元胞数组 table

Populating cell array using lookup table

我有一个仅包含整数的二维 matrix。我还有一个元胞数组 tickerList,其中包含股票代码的名称。 matrix 中的列数等于 tickerList.

中的元素数

我正在尝试通过将 matrix 中的整数替换为 tickerList 中的相应名称来创建 cellArrayNew。因此,例如,如果 matrix(1,1)=3tickerList(3)='S&P 500',我想要 cellArrayNew(1,1)='S&P 500'.

只需使用矩阵作为 tickerList:

的索引
% Sample column names
tickerList = {'Col1' 'Col2' 'Col3'};

% Example matrix   
N = numel(tickerList);
matrix = randi(N, [4, N]);

% The matrix is already in index form, so just index:
cellArrayNew = tickerList(matrix);

如果矩阵包含在 tickerList 不是 的索引,请使用 ismember:

% Make some elements 'NaN';
matrix(rand(size(matrix)) < 0.2) = NaN;

% Determine which elements are in tickerList, 
% as well as where they are precisely
[isin, I] = ismember(matrix, 1:N);

% Construct new matrix
cellArrayNew = repmat({NaN}, size(matrix)); % <- use any filler you want
cellArrayNew(isin) = tickerList(I(isin))

我的例子的结果:

cellArrayNew = 
    'Col2'    'Col1'    [ NaN]
    'Col3'    [ NaN]    'Col2'
    'Col3'    'Col3'    'Col3'
    'Col3'    'Col1'    'Col2'