Ignore data in string using ~strcmp and ~strncmp

5 vues (au cours des 30 derniers jours)
Tammy Chen
Tammy Chen le 30 Nov 2016
Commenté : Tammy Chen le 3 Déc 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

Réponse acceptée

Walter Roberson
Walter Roberson le 30 Nov 2016
f = pvt(~(strnmp(pvt,'False start') | strncmp(pvt,'Wrong key:', 10)));
  1 commentaire
Tammy Chen
Tammy Chen le 3 Déc 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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings 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!

Translated by