# how to stop changing of a variable?

12 visualizaciones (últimos 30 días)
Enez Furkan Cihan el 23 de Jul. de 2019
Editada: Stephen23 el 24 de Jul. de 2019
Function ...
...
if s<200
logic=1;
else
logic=0;
end
end
end
here I'll explain what I tryna make, assume 's' is a variable result of that firstly starting from 0 and having cumulative summation step by step. Till it arrives at 200, logic equals to 1, so far so good, where it arrives at 200, I want the logic be constant 0 always after at 200, the problem is 's' is decreasing after it got hit by 200. So that it starts to be '1' again. That's the thing I don't want it to be. If it happened in a loop, I'd use 'break', but loops is not used.
For any help, I thank you for your time in advance.
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Stephen23 el 23 de Jul. de 2019
Editada: Stephen23 el 24 de Jul. de 2019
Use a nested function:
logic = true;
...
function ...
...
logic = logic && s<200;
...
end
...
Or a persistent variable:
##### 5 comentariosMostrar 3 comentarios más antiguosOcultar 3 comentarios más antiguos
Enez Furkan Cihan el 23 de Jul. de 2019
@Stephen Cobeldick , I did solved the problem using persistent. For other people possible may have the same problem I had, I forgot to mention the code is in MATLAB Function in Simulink, and function is called multiple times naturally. Any way, It’s done.
Stephen23 el 24 de Jul. de 2019
@Enez Furkan Cihan: I am glad that my suggestion of using peristent helped you. You can help me by voting for my answer or accepting it.

Iniciar sesión para comentar.

### Más respuestas (1)

Image Analyst el 23 de Jul. de 2019
if s<200
logic=1;
else
logic=0;
do this
logic = s < 200; % Just one line, not a whole if/else block.
if logic
return; % Exit out of the function entirely so s does not get altered anymore.
end
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Enez Furkan Cihan el 23 de Jul. de 2019
Function is not only set up for this logic part. I can't go out of the function before it completes its sampling time.

Iniciar sesión para comentar.

### Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

### Community Treasure Hunt

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

Start Hunting!

Translated by