Ignore data in string using ~strcmp and ~strncmp

7 次查看(过去 30 天)
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

采纳的回答

Walter Roberson
Walter Roberson 2016-11-30
f = pvt(~(strnmp(pvt,'False start') | strncmp(pvt,'Wrong key:', 10)));
  1 个评论
Tammy Chen
Tammy Chen 2016-12-3
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

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by