在图像处理中,我们将图像导入MATLAB中,通常以矩阵的形式进行处理;在各种的处理过程中,我们不可避免的要完成对矩阵的拼接,主要分为纵向和横向两种方式。
1、横向拼接
横向拼接可以考虑使用:“,”或者“空格”;
A = [1 1 1;2 2 2;3 3 3];
B = [4 4 4;5 5 5;6 6 6];
C = [7 7 7;8 8 8;9 9 9];
方法一、“逗号”
>> D = [A,B]
D =
1 1 1 4 4 4
2 2 2 5 5 5
3 3 3 6 6 6
方法二、“空格”
>> D = [A B]
D =
1 1 1 4 4 4
2 2 2 5 5 5
3 3 3 6 6 6
2、纵向拼接
纵向拼接可以考虑使用“;”
>> D = [A;B]
D =
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
3、综合拼接方法“cat函数”
对于多个数组的拼接可以考虑使用"cat"函数,将多个矩阵通过指定维数dim可以合成一个新的包含各个维度的数组;
A = [1 1 1;2 2 2;3 3 3];
B = [4 4 4;5 5 5;6 6 6];
C = [7 7 7;8 8 8;9 9 9];
当dim = 1时,类似于纵向拼接:
>> cat(1,A,B,C)
ans =
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
当dim = 2时,类似于横向拼接:
>> cat(2,A,B,C)
ans =
1 1 1 4 4 4 7 7 7
2 2 2 5 5 5 8 8 8
3 3 3 6 6 6 9 9 9
当dim = 3时,增加了新维度:
>> cat(3,A,B,C)
ans(:,:,1) =
1 1 1
2 2 2
3 3 3
ans(:,:,2) =
4 4 4
5 5 5
6 6 6
ans(:,:,3) =
7 7 7
8 8 8
9 9 9
当dim = 4时,增加了新维度:
>> cat(4,A,B,C)
ans(:,:,1,1) =
1 1 1
2 2 2
3 3 3
ans(:,:,1,2) =
4 4 4
5 5 5
6 6 6
ans(:,:,1,3) =
7 7 7
8 8 8
9 9 9
提高dim的值,拼接得到数组的维度会不断增加,可以根据自己的需要自由选择,其中dim =3、4是相对应用较多的,希望对各位有所帮助。
参考资料:
https://ww2.mathworks.cn/products/matlab.html
标签:dim,函数,纵向,cat,拼接,MATLAB,ans,维度
From: https://blog.csdn.net/qq_51990574/article/details/144988398