如何复制阵列 [英] how to replicate an array

查看:144
本文介绍了如何复制阵列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要这样的功能

>> matdup([1 2],3,4)            %or any other input that user wish to enter
ans= 

 1     2     1     2     1     2     1     2
 1     2     1     2     1     2     1     2
 1     2     1     2     1     2     1     2

我停留在我的code。我的逻辑是:

I am stuck in my code. My logic:

m = matdup(input,row,col)
for i = 1:row
        for j = 1:col
            m(i, j)= input;

这是生产这种

>> matdup(1,2,2)
ans=

      1 1
      1 1

但在这个失败:

>> matdup([1 2],3,4)

在控制台错误:

Subscripted assignment dimension mismatch.

    Error in ==> matdup at 6
                m(i, j)= input

任何想法?

推荐答案

Matlab具有一个名为的 repmat ,做同样的。

Matlab has a funcion called repmat that does the same.

如果你想创建一个类似的功能,你可以做这样的事情:

If you want to create a similar function, you could do something like this:

function B = matdup(A, M, N)
    [nr, nc] = size(A);
    B = zeros([nr nc] .* [M N]);
    for r = 1:M
        for c = 1:N
            rr = (r - 1) * nr + 1;
            cc = (c - 1) * nc + 1;
            B(rr:rr + nr - 1, cc:cc + nc - 1) = A;
        end
    end
end

请注意此功能仅限于二维矩阵。

Note this function is restricted to 2D matrices.

这篇关于如何复制阵列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆