Borrar filtros
Borrar filtros

How do I run increments of numbers through a function?

8 visualizaciones (últimos 30 días)
Phi Tran
Phi Tran el 9 de Feb. de 2018
Respondida: Walter Roberson el 9 de Feb. de 2018
I would like to know how to run numerous numbers through a function. For example, I would like to start at number 95 and decrease by increments of .1.
so 95.0000, 94.9000, 94.8000, 94.7000, 94.6000, 94.5000, 94.4000....... and so on...
I want to run these numbers to the attached function "m.m" file until the output generated is 35

Respuestas (2)

Eric Tao
Eric Tao el 9 de Feb. de 2018
Use MATLAB colon expression, and you don't need for-loop anymore.
Run:
a = [95:-0.1:35]';
you will get the result.
  1 comentario
Stephen23
Stephen23 el 9 de Feb. de 2018
As you are not concatenating anything use parentheses, not square brackets:
a = (95:-0.1:35)';

Iniciar sesión para comentar.


Walter Roberson
Walter Roberson el 9 de Feb. de 2018
L = 95;
while true
output = m(L);
fprintf('For L = %f, output = %g\n', L, output);
if output == 35
break;
end
L = L - 0.1;
end
However.... there is no guarantee that m() will ever give an output of exactly 35. http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F
If the task were to find the L such that m(L) == 35, then you would not proceed sequentially: you would use fzero or fsolve:
fzero(@(L) m(L)-35, 95)

Categorías

Más información sobre Loops and Conditional Statements 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