It's easy to achieve by defining a new class for the iteration:
classdef enumerate < handle
properties(Access = private)
IterationList;
end
methods
function self = enumerate(in)
self.IterationList = in;
end
function [varargout] = subsref(self, S)
item = subsref(self.IterationList,S);
num = S.subs{2};
out.item = item;
out.num = num;
varargout = {out};
end
function [m,n] = size(self)
[m,n] = size(self.IterationList);
end
end
end
You can use it in this way:
for t = enumerate(linspace(0,1,10));
disp(['num is: ',num2str(t.num),'item is: ',num2str(t.item)]);
end
And will get this output:
num is: 1item is: 0
num is: 2item is: 0.11111
num is: 3item is: 0.22222
num is: 4item is: 0.33333
num is: 5item is: 0.44444
num is: 6item is: 0.55556
num is: 7item is: 0.66667
num is: 8item is: 0.77778
num is: 9item is: 0.88889
num is: 10item is: 1