我有A大小m的变量n.我要生成B大小m的m*n,比如下面的例子.例:
A = [1 2 3;
4 5 6;
7 8 9]
Run Code Online (Sandbox Code Playgroud)
应该结果
B = [1 2 3 4 5 6 7 8 9;
1 2 3 4 5 6 7 8 9;
1 2 3 4 5 6 7 8 9]
Run Code Online (Sandbox Code Playgroud)
没有使用循环有没有办法做到这一点?m并且n是可变的.
你应该使用repmatMatlab功能:
B = repmat(A,M,N)创建由一个大矩阵B M-by- N
的拷贝平铺A.大小B是[size(A,1)*M, size(A,2)*N].该语句 repmat(A,N)创建一个N-by- N平铺.
对于您的具体情况,一个解决方案可能是
A=A';
B=repmat(A(:)',3,1);
Run Code Online (Sandbox Code Playgroud)
对于一般情况,一种解决方案可能是:
A_aux=reshape(A',1,size(A,1)*size(A,2));
B=repmat(A_aux,size(A,1),1);
Run Code Online (Sandbox Code Playgroud)