The output value of the for loop is wrong
2 views (last 30 days)
Show older comments
rajasekar dhandapani
on 19 Jun 2019
Commented: Bob Thompson
on 19 Jun 2019
Hi all,
The output structure is right but somehow the logic is wrong
please find the script below
D_Calc=[];
Filter=[];
for jj=1:12
D_Calc(:,end+1)=D(:,jj); % both D_Calc and D are same
Filter=D_Calc(D_Calc(:,jj)<PlusThreesigma(jj))
MeanFilter(:,end+1)=mean(Filter);
end
output
The filter and the mean filter value takes only the 1st column.
4 Comments
Bob Thompson
on 19 Jun 2019
Ok, I was able to run your code, and I am not seeing the problem you are mentioning. For me, MeanFilter is coming out as a single row of values, with corresponding means in each column.
Accepted Answer
Bob Thompson
on 19 Jun 2019
I see it now. Swap the Filter line for the following.
Filter=D_Calc(D_Calc(:,jj)<PlusThreesigma(jj),jj);
Basically, your logic produces the logic for one column, but because a specific column of D_Calc was not specified it was always looking at the first column.
2 Comments
Bob Thompson
on 19 Jun 2019
To use more than one logical condition, use & for and, and | for or.
Filter = D_Calc(D_Calc(:,jj)>MinusThreesigma(jj) & D_Calc(:,jj)<PlusThreesigma(jj),jj)
More Answers (1)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!