MATLAB如何定义矩阵拼接
若有矩阵A=[1,2;3,4],B=[5,6;7,8].如何得到矩阵C=[A;B]即矩阵[1,2;3,4;5,6;7,8].(相当于把以上两个矩阵纵向拼接起来).有没有一...
若有矩阵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]即矩阵[1,2;3,4;5,6;7,8]. (相当于把以上两个矩阵纵向拼接起来).
有没有一个通用的算法,对于相同大小(m*n)的两个矩阵A,B,得到C=[A;B].
谢谢!. 展开
6个回答
东莞大凡
2024-08-07 广告
2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间...
点击进入详情页
本回答由东莞大凡提供
展开全部
没明白楼主还想要什么样的定义?
直接
C=[A;B]
不就行了?如果想写成函数的形式,那也有现成的:
C=cat(1,A,B)
追问
若A,B大小不一致怎么办呢?比如A(3*3),B(3*2).
运行C=[A ;B]的话会报错如下
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
有没有办法让大小不足的地方自动补充“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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a =
1 2 3
2 3 4
b =
4 5 6
5 9 9
要求:
c =
1 2 3
2 3 4
4 5 6
5 9 9
使用命令:
c = [a; b]
同时要横向合并,如产生
c =
1 2 3 4 5 6
2 3 4 5 9 9
则使用命令:
c = [a b]或c = [a, b]。
1 2 3
2 3 4
b =
4 5 6
5 9 9
要求:
c =
1 2 3
2 3 4
4 5 6
5 9 9
使用命令:
c = [a; b]
同时要横向合并,如产生
c =
1 2 3 4 5 6
2 3 4 5 9 9
则使用命令:
c = [a b]或c = [a, b]。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以自自己定义函数,需要时调用即可 很方便
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询