序列的运算主要包括基本的算术运算,以及对于翻转、平移、卷积、自相关、互相关。
先说代数运算。对两个序列做加减乘除用笔算都是一件很容易的事情,写程序算也比较容易,关键是能够将序列“对齐”:假如一个序列的下标是-3~4;另一个是1~5。那么就得把它们长度补的一样长,并且覆盖二者的范围,然后再进行运算。下面是对应的matlab程序:
function [ xe1,xe2,n ] = dataAlign( xn1,n1,xn2,n2 )
n = min(min(n1),min(n2)):max(max(n1),max(n2));
xe1 = zeros(1,length(n));
xe2 = zeros(1,length(n));
for i = 1:length(n1)
if (n1(i)>=min(n) && n1(i)<=max(n))
for j = 1:length(n)
if n1(i) == n(j)
xe1(j) = xn1(i);
end
end
end
end
for i = 1:length(n2)
if (n2(i)>=min(n) && n2(i)<=max(n))
for j = 1:length(n)
if n2(i) == n(j)
xe2(j) = xn2(i);
end
end
end
end
end
它的做法也没有什么高超的技巧,就是按照人解决问题的思路:首先获取两个序列的最大值和最小值