matlab如何把2维矩阵短的那一维补0?比如一个2x4矩阵A=[1 1 1 1; 1 1 1 1],目标是把A变成4x4矩阵B=[0 0 0 0;1 1 1 1;1 1 1 1;0 0 0 0],即把A放在中间,外面补0.但A有时是2x4,有时是4x2,即需要补0的那一维不确定.我
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/06 12:32:06
matlab如何把2维矩阵短的那一维补0?比如一个2x4矩阵A=[1 1 1 1; 1 1 1 1],目标是把A变成4x4矩阵B=[0 0 0 0;1 1 1 1;1 1 1 1;0 0 0 0],即把A放在中间,外面补0.但A有时是2x4,有时是4x2,即需要补0的那一维不确定.我
matlab如何把2维矩阵短的那一维补0?
比如一个2x4矩阵A=[1 1 1 1; 1 1 1 1],目标是把A变成4x4矩阵B=[0 0 0 0;1 1 1 1;1 1 1 1;0 0 0 0],即把A放在中间,外面补0.但A有时是2x4,有时是4x2,即需要补0的那一维不确定.我现在是用if来实现,if size(A,1) < size(A,2) 在外侧补2个横行0; else 在外侧补2个竖行0.补0的命令行业比较麻烦:B(((size(A,2)-size(A,1))/2+1:(size(A,2)-(size(A,2)-size(A,1))/2),:)=A.这是我目前的方法.有没有一个简单且一般方法可以实现这一目标,无论2位矩阵A是2x4还是4x2?
matlab如何把2维矩阵短的那一维补0?比如一个2x4矩阵A=[1 1 1 1; 1 1 1 1],目标是把A变成4x4矩阵B=[0 0 0 0;1 1 1 1;1 1 1 1;0 0 0 0],即把A放在中间,外面补0.但A有时是2x4,有时是4x2,即需要补0的那一维不确定.我
试试这个
function B = getB(A)
B = zeros(length(A));
B(length(A)+1:length(A)*3) = A;
if size(A,1) < size(A,2)
B = B';
end
用法
A=[1 1 1 1; 1 1 1 1];
B = getB(A);
或者更直接的
if size(A,1)