MATLAB: Given the element in a matrix, how to get the corresponding element in cell array?(cell2mat, mat2cell)

cell2matmat2cell

There is a cell array, saying A = {a_1 x b, a_2 x b, a_3 x b, …, a_n x b}.
After doing B = cell2mat(A), I can get a matrix B, which is (a_1+a_2+…+a_n) x b.
After processing the matrix B, I get my wanted elements in B, saying they are x, which is the row index of Matrix B.
How can I get the corresponding element in original cell A?
For example, if x = 1, it must come from the first element in A. If x > a_1 && x < a_2, it must come from the second element in A.
Is there any function in matlab?
Thanks,
Zhong

Best Answer

eg
A = arrayfun(@(x)randi(12,randi(6),6),1:7,'un',0)
B = cat(1,A{:})
I=17;J=1;
B(I,J)
%solution
idx = cumsum([0 cellfun('size',A,1)])
nocell = find(idx < I,1,'last')
Ic = I - idx(nocell)
A{nocell}(Ic,J)