create indexes of x in a for loop
1 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
回答(1 个)
Stephen23
2018-11-14
编辑:Stephen23
2018-11-14
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
9 个评论
Stephen23
2018-11-15
"anyway my problem if there is any way to do symbolic indexing"
What exactly is "symbolic indexing"?
Perhaps a simple function of x is what you are looking for... nothing to do with indexing at all.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!