how can i declare a variable in a function for the first time only ,

5 visualizaciones (últimos 30 días)
function h=src(input) %example
output=0 %here i won't output to be declared again when matlab gonna calcul src(input-1)
if input==0
output=output
else
output= output +1
src(input-1)
end

Respuesta aceptada

Adam Danz
Adam Danz el 23 de Sept. de 2020
Editada: Adam Danz el 23 de Sept. de 2020
I think this is what you're looking for,
function h=src(input)
persistent output %%%%%%%%
if isempty(output) %%
output = 0; %%
end %%%%%%%%
if input==0
%output=output; % What's this ??
% Do nothing
else
output= output + 1;
src(input-1);
end
h = output; % assign output!
However, this still has problems.
  1. What if user enters src(-1)? What about src(.9)? The input will never reach 0 and you'll run out of memory. To prevent the user from entering negative or non-scalar values, use an argument validation function.
  2. You probably want to reset output back to 0 after input reaches 0. In that case, you can make this change,
if input==0
%output=output; % What's this ??
h = output;
output = 0;
else ...
  4 comentarios
sofiane benhamza
sofiane benhamza el 23 de Sept. de 2020
Editada: sofiane benhamza el 23 de Sept. de 2020
they said that it's one positive number , and i'm not allowed to use loops or str2num , i wish that it was a vector
Adam Danz
Adam Danz el 23 de Sept. de 2020
Editada: Adam Danz el 23 de Sept. de 2020
There are already lots of solutions for this within this forum.
Search the forum for phrases like
  • Convert integer to vector
  • Convert scalar to vector
  • 123 to 1 2 3
etc...

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Mathematics 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