【问题标题】:How to Concatenate arrays 'n' time in matlab?如何在matlab中连接数组'n'时间?
【发布时间】:2012-12-11 12:27:53
【问题描述】:

命令:

>> mat = magic( 4 );
>> out = cat( 3, mat, mat );

将矩阵“mat”沿第三维连接 2 次并生成一个 4×4×2 数组

如何在不使用循环的情况下“n”次生成一个 4×4×n 数组?

我知道这可以通过使用这样的元胞数组来实现:

>> out = cat( 3, cellArray{:} );

但是如何创建这个元胞数组呢? :

>> cellArray = {mat, mat, ... , mat};  % n time

如何在 matlab 中连接数组 n 次?

【问题讨论】:

    标签: arrays matlab concatenation


    【解决方案1】:

    您可以使用repmat

    如果你想要一个 3 维矩阵:

    mat = magic(4);
    n = 3; % Number of times you want to replicate
    out = repmat(mat,[1 1 n]);
    

    out 将是一个 4x4xn 双精度数组。

    如果您想要一个元胞数组,您可以将其作为附加步骤:

    outCell = mat2cell(out,4,4,ones(1,n));
    

    outCell 将是一个 1x1xn 元胞数组。

    【讨论】:

    • @HamedHamed:如果输出应该是元胞数组,您可以简单地调用repmat({mat},[1,1,n])
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多