Effacer les filtres
Effacer les filtres

Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

It only shows the else value if value of b crosses 15 even once.

1 vue (au cours des 30 derniers jours)
Adhish Aggarwal
Adhish Aggarwal le 19 Avr 2017
Clôturé : MATLAB Answer Bot le 20 Août 2021
b = AXIS(1:100,1) - KOTAK(1:100,1);
avg5 = zeros(5,1);
for k = 5:length(b)
avg5(k) = mean(b(k-4:k,1));
end
a = 0;
avg5 = [a;avg5];
avg5(numel(avg5),:) = [];
std5 = zeros(5,1);
for al = 5:length(b)
std5(al) = std(b(al-4:al,1));
end
% a = 0;
std5 = [a;std5];
std5(numel(std5),:) = [];
up5 = zeros(length(std5),1);
for d = 1 : length(std5)
if abs(b) < 14.5
up5(d) = std5*2 + avg5;
down5(d) = std5*(-2) + avg5;
else
up5(d) = std5*2 + avg5;
down5(d) = std5*(-2) + avg5;
end
end
It works well till up5 = zeros(length(std5,1));
  3 commentaires
Geoff Hayes
Geoff Hayes le 19 Avr 2017
Adhish - how is b set? Please post more of your code.
Adhish Aggarwal
Adhish Aggarwal le 19 Avr 2017
I have mine given my full code p above. Please let me know. Thank you

Réponses (1)

Steven Lord
Steven Lord le 19 Avr 2017
That's the correct behavior. From the documentation for the if keyword: " if expression, statements, end evaluates an expression, and executes a group of statements when the expression is true. An expression is true when its result is nonempty and contains only nonzero elements (logical or real numeric). Otherwise, the expression is false. "
In your case, you probably want to use logical indexing instead.
  1 commentaire
Adhish Aggarwal
Adhish Aggarwal le 19 Avr 2017
I have mine given my full code p above. Please let me know. Thank you

Cette question est clôturée.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by