Arrays 在每隔一列之间插入一个常量数组

Arrays 在每隔一列之间插入一个常量数组,arrays,matlab,matrix,insert,Arrays,Matlab,Matrix,Insert,比方说,我有一个mxn矩阵。现在,我想在每个N列之间插入一个常量m1列向量(比如全部1)。因此,我得到的矩阵是维数(mx(2*N-1)),每列为1 有没有一种简单的方法可以做到这一点?如果您不介意创建一个临时矩阵,一种方法是执行以下操作: old_matrix = rand(M,N); % Just for example new_matrix = ones(M,2*N-1); new_matrix(:,1:2:end) = old_matrix; new_matrix = repmat(co

比方说,我有一个
mxn
矩阵。现在,我想在每个
N
列之间插入一个常量
m1
列向量(比如全部1)。因此,我得到的矩阵是维数(
mx(2*N-1)
),每列为1


有没有一种简单的方法可以做到这一点?

如果您不介意创建一个临时矩阵,一种方法是执行以下操作:

old_matrix = rand(M,N); % Just for example
new_matrix = ones(M,2*N-1);
new_matrix(:,1:2:end) = old_matrix;
new_matrix = repmat(const_array,1,2*N-1);
请注意,对于任意常数矩阵,可以使用以下内容替换第二行:

old_matrix = rand(M,N); % Just for example
new_matrix = ones(M,2*N-1);
new_matrix(:,1:2:end) = old_matrix;
new_matrix = repmat(const_array,1,2*N-1);

如果您不介意创建临时矩阵,一种方法是执行以下操作:

old_matrix = rand(M,N); % Just for example
new_matrix = ones(M,2*N-1);
new_matrix(:,1:2:end) = old_matrix;
new_matrix = repmat(const_array,1,2*N-1);
请注意,对于任意常数矩阵,可以使用以下内容替换第二行:

old_matrix = rand(M,N); % Just for example
new_matrix = ones(M,2*N-1);
new_matrix(:,1:2:end) = old_matrix;
new_matrix = repmat(const_array,1,2*N-1);

垂直连接一个由一个矩阵组成的矩阵,重塑形状,并切断最后一列的一个矩阵。对于矩阵
a

B = reshape([A; ones(size(A))],size(A,1),[]);
B(:,end)=[]

垂直连接一个由一个矩阵组成的矩阵,重塑形状,并切断最后一列的一个矩阵。对于矩阵
a

B = reshape([A; ones(size(A))],size(A,1),[]);
B(:,end)=[]

下面是另一种方法,可以在作业中使用越界索引:

M(:,1:2:end*2)=M;
M(:,2:2:end)=1

下面是另一种方法,可以在作业中使用越界索引:

M(:,1:2:end*2)=M;
M(:,2:2:end)=1

谢谢!这对汉克斯很有帮助!那有帮助