字典翻译 问答 其它 【MATLAB如何定义矩阵拼接若有矩阵A=[1,2;3,4],B=[5,6;7,8].如何得到矩阵C=[A;B]即矩阵[1,2;3,4;5,6;7,8].(相当于把以上两个矩阵纵向拼接起来).有没有一个通用的算法,对于相同大小(m*n)的两个矩阵A,B,得】
问题标题:
【MATLAB如何定义矩阵拼接若有矩阵A=[1,2;3,4],B=[5,6;7,8].如何得到矩阵C=[A;B]即矩阵[1,2;3,4;5,6;7,8].(相当于把以上两个矩阵纵向拼接起来).有没有一个通用的算法,对于相同大小(m*n)的两个矩阵A,B,得】
问题描述:

MATLAB如何定义矩阵拼接

若有矩阵A=[1,2;3,4],B=[5,6;7,8].

如何得到矩阵C=[A;B]即矩阵[1,2;3,4;5,6;7,8].(相当于把以上两个矩阵纵向拼接起来).

有没有一个通用的算法,对于相同大小(m*n)的两个矩阵A,B,得到C=[A;B].

龚瑞昆回答:
  没明白楼主还想要什么样的定义?   直接   C=[A;B]   不就行了?如果想写成函数的形式,那也有现成的:   C=cat(1,A,B)
范玉玲回答:
  若A,B大小不一致怎么办呢?比如A(3*3),B(3*2).运行C=[A;B]的话会报错如下???Errorusing==>vertcatCATargumentsdimensionsarenotconsistent.有没有办法让大小不足的地方自动补充“0”元素呢?
龚瑞昆回答:
  矩阵拼接是要求维数匹配的,你举的例子不符合拼接的条件。如果按照你所说的自动补零,需要自己编写函数。   参考函数代码如下:   function C = vcat_padding_0s(A, B)   [mA, nA] = size(A);   [mB, nB] = size(B);   C = zeros(mA+mB,max(nA,nB));   C(1:mA, 1:nA)=A;   C(1+mA:end, 1:nB)=B;   调用实例:   >> A=magic(3)   A =   8 1 6   3 5 7   4 9 2   >> B=ones(2,4)   B =   1 1 1 1   1 1 1 1   >> C = vcat_padding_0s(A, B)   C =   8 1 6 0   3 5 7 0   4 9 2 0   1 1 1 1   1 1 1 1   >> B=ones(3,2)   B =   1 1   1 1   1 1   >> C = vcat_padding_0s(A, B)   C =   8 1 6   3 5 7   4 9 2   1 1 0   1 1 0   1 1 0
点击显示
其它推荐
热门其它推荐
  • 其它