matlab 一维数组拼接,多个一维数组合并成一个一维数组

目录

matlab 一维数组拼接,多个一维数组合并成一个一维数组

1、一维数组直接合并

直接将两个矩阵合并:

2、一维数组交叉合并:

方法一:

方法二:

方法三:

方法四:

其他操作:


matlab 一维数组拼接,多个一维数组合并成一个一维数组

1、一维数组直接合并

题目:

数组 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

2、一维数组交叉合并:

题目:

数组 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

【若有转载,须注明出处!!!】

你可能感兴趣的:(Matlab有这本就足够,matlab,算法)