已知x1(n)=[1,2,3,4],n1=[0:3];x2(n)=[3,4,2,1,3,2],n1=[-2:3];如何用matlab编程产生和绘制如下序列:x1(n)+x2(n);x1(n)*x2(n);x2(n-3);x2(-n)。
时间: 2024-09-24 12:19:27 浏览: 57
2016高中数学2.5.1平面几何中的向量方法教案新人教A版必修4
在MATLAB中,你可以使用循环、数组运算以及适当的数据处理函数来生成和绘制所需的序列。以下是相应的代码:
```matlab
% 定义输入向量
x1 = [1, 2, 3, 4];
n1 = 0:3; % 对于x1(n)
x2 = [3, 4, 2, 1, 3, 2]; % 注意 n1 应对应 x2 的有效索引范围 [-2:3]
n2 = -2:3; % 对于x2(n)
% 创建新的向量
y1_sum = x1 + x2; % x1(n) + x2(n)
y1_prod = x1 .* x2; % x1(n) * x2(n)
% 对于x2(n-3),因为n2范围是从-2到3,所以需要调整索引
y2_shifted = x2(n2 >= 0 & n2 <= length(x2) - 3); % x2(n-3)
% 对于x2(-n),创建负值范围的相反向量,注意负数索引是从最后一个元素开始计数的
y2_neg = x2(length(x2) - (n2 + 2)); % x2(-n)
% 绘制图形
figure;
subplot(2, 2, 1);
plot(n1, y1_sum);
title('x1(n) + x2(n)');
subplot(2, 2, 2);
plot(n1, y1_prod);
title('x1(n) * x2(n)');
subplot(2, 2, 3);
plot(n2, y2_shifted);
title('x2(n-3)');
subplot(2, 2, 4);
plot(y2_neg);
title('x2(-n)');
xlabel('Index');
ylabel('Value');
% 显示所有图
grid on;
```
这段代码首先计算了各个序列,然后分别绘制了四个子图来展示结果。注意在`y2_shifted`部分,我们只选择了x2在正向范围内且满足条件的元素。在最后的绘图中,我们使用了`xlabel`和`ylabel`来添加轴标签,并使用`grid on`增加网格线以便更好地查看数据分布。
阅读全文