目录
matlab 一维数组拼接,多个一维数组合并成一个一维数组
1、一维数组直接合并
直接将两个矩阵合并:
2、一维数组交叉合并:
方法一:
方法二:
方法三:
方法四:
其他操作:
题目:
数组 work1[x1,x2,……,xn],work2[y1,y2,……,yn],现在要生成一个数组 work3,work3 中的数据为[x1,x2,x3,……,xn,y1,y2,……,yn];
合并方法:
clc, clear, close all
A = [1,2,3,4];
B = [-1,-2,-3,-4];
C = [5,6,7,8];
D = [-5,-6,-7,-8];
% 1、一维数组直接合并:
% E = zeros(1,size(B,2)+size(A,2)); % 这句可以不要;
E = [A, B]%; % 两数组合并,逗号:左右合并
F = [A; B]%; % 两数组合并,分号:上下合并
合并结果:
E =
1 2 3 4 -1 -2 -3 -4
F =
1 2 3 4
-1 -2 -3 -4
题目:
数组 work1[x1,x2,……,xn],work2[y1,y2,……,yn],现在要生成一个数组 work3,work3 中的数据为 [x1,y1,x2,y2,……,xn,yn];
% 2、一维数组交叉合并:
% method1:
G = zeros(1,size(B,2)+size(A,2));
G(1:2:end) = A;
G(2:2:end) = B;
合并结果为:
G =
1 -1 2 -2 3 -3 4 -4
% method2:
H = [A' B']';
H = reshape(H, 1, length(A)+length(B));
合并结果为:
H =
1 -1 2 -2 3 -3 4 -4
% method3: 对method2 进行改进
I = reshape([A;B], 1, []); % v7以上版本,才支持.
合并结果为:
I =
1 -1 2 -2 3 -3 4 -4
% method4:
K = kron(A,[1 0]) + kron(B, [0 1]);
合并结果为:
K =
1 -1 2 -2 3 -3 4 -4
% 其他操作
L = zeros(1,size(D,2)+size(C,2));
L(1:2:end) = C;
L(2:2:end) = D;
M = zeros(1,size(L,2)+size(G,2));
M(1:2:end) = G;
M(2:2:end) = L;
合并结果为:
L =
5 -5 6 -6 7 -7 8 -8
M =
1 5 -1 -5 2 6 -2 -6 3 7 -3 -7 4 8 -4 -8