Compare value in one column and replace string in another column
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposte (2)
Andrei Bobrov
il 4 Giu 2012
x = cellfun(@str2num,M{5});
M{3}(x <= 2000 | x >= 40000) = {'miss'};
2 Commenti
Andrei Bobrov
il 5 Giu 2012
What contains M {5}?,
in my case:
for example:
M{5} = {'200';10000';'50000'}
Vedere anche
Categorie
Scopri di più su Characters and Strings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!