loop with easy underfunction

9 views (last 30 days)
ErikJ
ErikJ on 7 Nov 2017
Commented: Rik on 7 Nov 2017
function tretti
for k=1:3
F=results(k)
end
function h=results(k)
A ={k*2};
A1(k)= A
h=A1
%output: F=[] [] [6]
%what i want: F=[2] [4] [6] //cell array
  1 Comment
ErikJ
ErikJ on 7 Nov 2017
Sorry, the question is: why is my underfunction not remembering my earlier value of A1 and how can i make it to remember?

Sign in to comment.

Answers (1)

Rik
Rik on 7 Nov 2017
Because you are overwriting it every iteration.
function F=tretti
for k=1:3
F{k}=results(k);
end
function h=results(k)
A ={k*2};
A1(k)= A;
h=A1;
You should look into cellfun, it may be really useful for what you are trying to do.
  2 Comments
ErikJ
ErikJ on 7 Nov 2017
yes but i dont have a cell array that i want to aply a function on. I want to make a cell array [2] [4] [6] [8] [10].... cellfun(func,A) my function is take k*2 but what is my A and how do i create it?
Rik
Rik on 7 Nov 2017
The modification of your code should work. You could also generate it as a vector or matrix, and then convert it to a cell with num2cell (or mat2cell).

Sign in to comment.

Categories

Find more on Cell Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!