Borrar filtros
Borrar filtros

Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

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

1 visualización (últimos 30 días)
Adhish Aggarwal
Adhish Aggarwal el 19 de Abr. de 2017
Cerrada: MATLAB Answer Bot el 20 de Ag. de 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 comentarios
Geoff Hayes
Geoff Hayes el 19 de Abr. de 2017
Adhish - how is b set? Please post more of your code.
Adhish Aggarwal
Adhish Aggarwal el 19 de Abr. de 2017
I have mine given my full code p above. Please let me know. Thank you

Respuestas (1)

Steven Lord
Steven Lord el 19 de Abr. de 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 comentario
Adhish Aggarwal
Adhish Aggarwal el 19 de Abr. de 2017
I have mine given my full code p above. Please let me know. Thank you

La pregunta está cerrada.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by