我想使用数值数组(例如 1:7)来创建元胞数组,例如{1,2,3,4,5,6,7}
. 我该怎么做?通过哪个函数?
错误的
>> {1:2}
ans =
[1x2 double]
正确的输出
>> {1,2}
ans =
[1] [2]
我想使用数值数组(例如 1:7)来创建元胞数组,例如{1,2,3,4,5,6,7}
. 我该怎么做?通过哪个函数?
错误的
>> {1:2}
ans =
[1x2 double]
正确的输出
>> {1,2}
ans =
[1] [2]
您可以使用
num2cell(1:7)
它将每个数字转换为输出单元格中的单个元素。
你可以用它做更多的事情;键入help num2cell
以获取更多信息。
有很多替代方法,我认为最简单的方法是
arrayfun(@(x)x, 1:7, 'UniformOutput', false)
或好的旧for
循环:
N = 7;
C = cell(N,1);
for ii = 1:N
C{ii} = ii; end
尽管您听说过for
MATLAB 中的循环,但它们不再那么可怕了。如果您对较大的 N 重复 Nick 的测试,您会发现它num2cell
是最快的,然后是for
循环,然后是arrayfun
.
在我看来,有两种方法可以做到这一点。num2cell
是迄今为止最好的方法,但我也想提一下这个arrayfun
方法。
>> arrayfun(@(a)(a), 1:7, 'UniformOutput', false);
>> num2cell(1:7);