19 views (last 30 days)

Show older comments

Hi all, I am trying to create and save some x values in an array in a format of A=[x(2)+x(3);x(3)+x(6);x(4)+x(9)];

so I tried something like that

for i=1:3

y=@(x) x(i+1)+x(3*i);

end

however I get for each i the same expression,

y=@(x)x(i+1)+x(3*i)

Is there any way to do that?

thanks

Nikolas

Stephen
on 14 Nov 2018

Edited: Stephen
on 14 Nov 2018

It is not very clear what you are trying to achieve, but it is possible to store a function handle in a cell array:

C = cell(1,3);

for k=1:3

C{k} = @(x) x(k+1)+x(3*k);

end

Although to be honest it is not clear why you are defining a function handle at all. If x is already defined, why not just get the numeric values directly:

N = nan(1,3);

for k=1:3

N(k) = x(k+1)+x(3*k);

end

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

Start Hunting!