各要素がセル配列自体 [9x2] であるセル配列 A [1x80] があります。A の選択されたセルのグループを表すベクトル B もあり、選択された各セルの要素 {2,2} を抽出したいと考えています。
シンプルにやってみた
A(1,B){2,2}
しかし、もちろんうまくいきません....助けてもらえますか?
各要素がセル配列自体 [9x2] であるセル配列 A [1x80] があります。A の選択されたセルのグループを表すベクトル B もあり、選択された各セルの要素 {2,2} を抽出したいと考えています。
シンプルにやってみた
A(1,B){2,2}
しかし、もちろんうまくいきません....助けてもらえますか?
この回答は @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
次の答えは間違っています。B の最初の要素から {2,2} インデックスのみを返します。
subsref([A{1,B}],struct('type','{}','subs',{{2,2}}))
あなたがやっていることのように聞こえます( and を使用していませんcellfun
。ループでこの操作を実行している場合は、遅いarrayfun
ため、より良いでしょう)
こちらsubsref
のドキュメントを参照してください。
より長いパスは次のようになります。
temp = [A{1,B}]
temp{2,2}