我有一个可以处理矩阵或单元格数组的函数。为了获得底层元素,我需要访问像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
注意:性能不是问题。
答案 0 :(得分:2)
为什么不将所有输入转换为单元格数组,然后只使用{}
访问权限?
function myFunctionThatGetsMatAndCell( inp )
if ~iscell( inp )
inp = num2cell( inp );
end
% continue here with only {} access...
%...
答案 1 :(得分:2)
或者,反过来说:
function myFunctionThatGetsMatAndCell(inp)
if iscell(inp)
inp = [inp{:}]; end
% continue here with only () access...
%...