【问题标题】:Matlab find string in cell array, report rowsMatlab在单元格数组中查找字符串,报告行
【发布时间】:2014-03-27 00:59:53
【问题描述】:

我正在排序单元格数组 rawArrayData.textdata 中查找包含字符串“chr1”的行范围,以便我可以仅使用这些行中的数据(例如,仅在给定染色体上的坐标,chr1):

chromCols = find([rawArrayData.textdata{:,1}] == 'chr1'); Error using == Matrix dimensions must agree.

我认为错误是对find 的不当使用。有没有办法用单元阵列做到这一点?或者,有没有办法将 'chrX' 的实例转换为 X,将其转换为双精度并使用 find

我以this answer 为起点,如果有帮助的话。

我对这些东西还很陌生——如果我能提供任何其他信息,我会提供的。

非常感谢。

【问题讨论】:

  • 能否提供rawArrayData.textdata的示例内容?

标签: string matlab indexing find cell


【解决方案1】:

如果您的rawArrayData.textdata 如下所示,您可以这样做:

rawArrayData.textdata = {'chr4'; 'chr1'; 'chr2'; 'chr1' };

chromCols = find(cellfun(@(s) strcmp(s, 'chr1') == 1, ...
                    rawArrayData.textdata));

% chromCols = [2, 4]    

% get only chromCols rows
rawArrayData.textdata{chromCols, 1}

【讨论】:

    猜你喜欢
    • 2014-03-22
    • 1970-01-01
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多