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 回答