2

行列またはセル配列で機能する関数があります。基になる要素を取得するには、 のような行列の要素と のようv(i)なセル配列の要素にアクセスする必要がありますv{i}。セル配列にアクセスするv(i)と、要素自体ではなく、要素を含む 1x1 セルが取得されます。

行列とセル配列の両方の要素にアクセスする統一された方法はありますか? 今のところ、そのために手書きの関数を使用する必要があります。

function elem = get_element(array, i)
  if iscell(array)
    elem = array{i};
  else
    elem = array(i);
  end
end

注: パフォーマンスは問題ではありません。

4

2 に答える 2

2

すべての入力をセル配列に変換してから、{}アクセスのみを使用しないのはなぜですか?

function myFunctionThatGetsMatAndCell( inp )
if ~iscell( inp )
   inp = num2cell( inp );
end
% continue here with only {} access...
%...
于 2013-11-14T13:24:29.623 に答える
2

または、その逆:

function myFunctionThatGetsMatAndCell(inp)
    if iscell(inp)
       inp = [inp{:}]; end

    % continue here with only () access...
    %...
于 2013-11-14T14:43:17.880 に答える