获取字符串不为空的行号

时间:2014-04-14 14:26:13

标签: matlab

我有一个有4列和大约的单元格数组。 2000行。在第二列中有一些字符串值。我需要在有一些文本的地方获取这些值的行号。我所能做的就是得到一个返回的逻辑向量,这不是我所追求的。

ID      New ID
123
956
987     655
321     656
987    
144     329

所以我想要一个能够返回行号的矢量[3,4,6]。

2 个答案:

答案 0 :(得分:3)

只需按find将逻辑索引转换为数字索引。

index = find(~cellfun(@isempty, array(:, 2)))

答案 1 :(得分:1)

如果您要查找第二列中包含某些文本(字符串)的行,可以使用ischar并检查所有第二列条目。

<强>代码

%%// Create some random cell array for demo
cell_array1 = cell(4,2);
cell_array1(:,1) = {34,45,22,12};
cell_array1(:,2) = {'hmm',45,'say',12}

%%// Required row indices 
ind = find(cellfun(@ischar, cell_array1(:, 2)))

<强>输出

cell_array1 = 

    [34]    'hmm'
    [45]    [ 45]
    [22]    'say'
    [12]    [ 12]


ind =

     1
     3