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

7 views (last 30 days)
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

Accepted Answer

Adam Danz
Adam Danz on 23 Sep 2020
Edited: Adam Danz on 23 Sep 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 Comments
sofiane benhamza
sofiane benhamza on 23 Sep 2020
Edited: sofiane benhamza on 23 Sep 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 on 23 Sep 2020
Edited: Adam Danz on 23 Sep 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...

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!