Ignore data in string using ~strcmp and ~strncmp

4 visualizaciones (últimos 30 días)
Tammy Chen
Tammy Chen el 30 de Nov. de 2016
Comentada: Tammy Chen el 3 de Dic. de 2016
Hi All, The following is a snippet of my code for data calculation.
for f = pvt[~strcmp(pvt,'False start');~strncmp(pvt,'Wrong key:',9)] %do not calculate false starts or wrong keys
s = str2double(f)
a = mean(s)
b = median(s)
I want Matlab to ignore values such as "False start" or anything that begins with "Wrong key:" and just calculate the mean and median in my data string without them, and output the statistical calculations on excel sheets. With this code above, it will not calculate the mean and medians of any data strings with "False start" or "Wrong key:" in it and will generate "NaN" in for mean/median instead. However, it will calculate the mean & median of data strings with the value "False start" if I change the line to
f = pvt(~strcmp(pvt,'False start'));
but it will still generate "NaN' for mean + median for those data strings with values beginning with "Wrong key:".
How do I code this line so Matlab will calculate the stats for only number values in all data strings and ignore the values "False start" and those beginning with "Wrong key:"?
Thanks,
Tammy

Respuesta aceptada

Walter Roberson
Walter Roberson el 30 de Nov. de 2016
f = pvt(~(strnmp(pvt,'False start') | strncmp(pvt,'Wrong key:', 10)));
  1 comentario
Tammy Chen
Tammy Chen el 3 de Dic. de 2016
Hi, Thanks for this great solution. I'm not good at cell handling at all. I fixed the minor typo in the line and it worked out for my code.
f = pvt(~(strcmp(pvt,'False start') | strncmp(pvt,'Wrong key:', 10)));
I changed strnmp to strcmp that's all.
Regards, Tammy

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by