如何复制阵列 [英] how to replicate an array
本文介绍了如何复制阵列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想要这样的功能
>> 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屋!
查看全文