Compare value in one column and replace string in another column
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dear all,
I imported a very long logfile with textscan using the %s (string) for all columns, given that I have both strings and numbers within column:
M =
{20132x1 cell} {20132x1 cell} {20132x1 cell} {20132x1 cell} {20132x1 cell}
In column 5 I have reaction time data. I column 3 I have "hit", "miss" or "correct" labels. I would like to clean my data, so that whenever column 5 has a value below 2000 ms or above 40000 ms the correspondent column 3 would be replaced with 'miss'.
I introduced a loop alpha declaring the size of M (I need this loop for additional operations), and between this loop I would like to clean the data:
for alpha = 1:size(M{1},1)
%idea which doesn't work
if str2num(M{5}{Z2}) <= 2000; change to 'miss' in M{3}}{Z2}
if str2num(M{5}{Z2}) >= 20000; change to 'miss' in M{3}}{Z2}
end
Any suggestion would be highly appreciated.
Sincerely,
Udiubu
0 commentaires
Réponses (2)
Andrei Bobrov
le 4 Juin 2012
x = cellfun(@str2num,M{5});
M{3}(x <= 2000 | x >= 40000) = {'miss'};
2 commentaires
Andrei Bobrov
le 5 Juin 2012
What contains M {5}?,
in my case:
for example:
M{5} = {'200';10000';'50000'}
Voir également
Catégories
En savoir plus sur Data Type Conversion dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!