mManipulating from particular column
1 回表示 (過去 30 日間)
古いコメントを表示
Gene T0 T1 T2 T3 T4
'gene1' 'u' 'u' 'd' 'd' 'u'
'gene2' 'u' 'u' 'u' 'u' 'u'
'gene3' 'd' 'd' 'u' 'd' 'd'
'gene4' 'd' 'u' 'd' 'u' 'd'
Taking T0 as reference for gene1 i need to display values which have 'u' for gene1(T0,T1,T4) have 'u',and corresponding column must be displayed for all genes. for ex gene1
'gene1' 'u' 'u' 'u'
'gene2' 'u' 'u' 'u'
'gene3' 'd' 'u' 'd'
'gene4' 'd' 'u' 'd'
for gene3 value is d(T0) so d must be taken
'gene3' 'd' 'd' 'd' 'd'
'gene4' 'd' 'u' 'u' 'd'
I want to display for all gene i have totally 1000 genes ,please help
0 件のコメント
採用された回答
Miro
2012 年 7 月 19 日
Something like this:
[n,~] = size(Data);
sgene = 'u'; %searched letter
referencepos = 1; %position of the Row in the Cell matrix of reference gene
s=Data{referencepos,:} == sgene;
Output = {};
Datatmp2 = {};
for i = 1 : n
Datatmp = cell2mat(Data(i,2:end));
Datatmp = Datatmp(s);
for k = 1 : length(Datatmp)
Datatmp2 = [Datatmp2 Datatmp(k)];
end
Datatmp2 = {Data(i,1) Datatmp2}
Output = [Output;Datatmp2 ]
end
7 件のコメント
Jan
2012 年 7 月 20 日
@Miro: Use STRCMP to compare cell strings with a string. CELL2MAT and == is not reliable, when the strings have more then 1 character.
Miro
2012 年 7 月 20 日
what do you mean with reliable? You mean that it sometimes works and sometimes not? Usually i used to use strcmp too, but just rescently i discovered, that booleans also work, which usually are the fastest method to go for.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Neural Simulation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!