Этот ответ такой же, как у @Dan, но при необходимости используется простой цикл for для повышения производительности.
% If you know that the numel of elements returned by {2,2} will always be one:
nElem = numel(B);
ret(1,nElem)=0;
for k=1:nElem
ret(k) = A{1,B(k)}{2,2}
end
Следующий ответ неверен, он вернет только индекс {2,2} из первого элемента из B
subsref([A{1,B}],struct('type','{}','subs',{{2,2}}))
Это больше похоже на то, что вы делаете (и не использует cellfun
и arrayfun
, было бы лучше, если бы вы выполняли эту операцию в цикле, потому что они медленно)
См. subsref
документацию здесь.
Более длинный путь будет:
temp = [A{1,B}]
temp{2,2}
person
Werner
schedule
22.08.2013
A{1,B}{2,2}
, а если это не сработает,tmp = A{1,B}; tmp{2,2}
? - person Tobias Kienzler   schedule 22.08.2013()
, где должно быть{}
. Если вы используете()
, он возвращает саму ячейку, а не элементы внутри ячейки. - person Werner   schedule 22.08.2013