【问题标题】:Fill cell array with consecutive numbers in Matlab在Matlab中用连续数字填充单元格数组
【发布时间】:2015-03-20 18:33:29
【问题描述】:

给定myCellArray{10,3} = [];,我想在第一列中填写连续的数字(比如 1 到 10)。我知道我可以这样做:

[myCellArray{1:10,1}] = deal(1,2,3,4,5,6,7,8,9,10)
myCellArray = 
    [ 1]    []    []
    [ 2]    []    []
    [ 3]    []    []
    [ 4]    []    []
    [ 5]    []    []
    [ 6]    []    []
    [ 7]    []    []
    [ 8]    []    []
    [ 9]    []    []
    [10]    []    []

但是,如果我的元胞数组更大(比如 1,000 行而不是 10 行),写出逗号分隔的值显然会变得乏味:

[myCellArray{1:10,1}] = deal(1,2,3, ... ,1000)

有没有办法自动创建这个以逗号分隔的数字“列表”?像(1:10) 这样的东西?我知道我可以通过循环分配值,但是有没有优雅的单行解决方案或类似的解决方案?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    这可能是使用num2cell 的一种方法-

    myCellArray(:,1) = num2cell(1:size(myCellArray,1))
    

    您可以使用mat2cell 代替num2cell,但它可能看起来不太优雅-

    mat2cell([1:size(myCellArray,1)]',ones(1,size(myCellArray,1)),1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      相关资源
      最近更新 更多