考虑定义:函数s1、s2、和sines(pts、amp、n1、n2)。输入pts是一个整数,但amp、n1和n2不一定是整数。输出一个行向量参数s1,其长度(元素数)等于pts。
s1的元素是正弦函数的值,当它被赋予从零开始并延伸到正弦n1周期的等距参数时。(请注意,我们要求完整的句点,因此如果n1是整数,则s1的第一个和最后一个元素都将是0,而不是非常小的舍入误差。)
(tips:如果你必须用10m长的线段做一个100m长的直线围栏,你需要多少线段fi和多少极fi)
正弦波的振幅等于amp。向量s2与s1相同,只是s2包含n2个周期。向量和是s1和s2的和。如果省略n2,则应将其设置为比n1大5%的值。如果也省略n1,则应将其设置为100。如果未提供amp,则它应默认为1。最后,如果也省略了pts,则应将其设置为1000。如果按如下所示运行sines并绘制第三个输出参数sums,则图形应如下所示(如果水平拉伸绘图窗口)。
请绘制pts 1000 amp 1.5 n1 100 200
300 400时的总和。尝试在同一窗口中绘制四个图形。显示主代码、功能代码。
clear all
clc
close all
% 测试
figure(1)
set(figure(1),'Position',[51,501,1167.5,217]);
subplot(1,2,1)
[s11,s21,sums1]=sines(10,1,2,3);
subplot(1,2,2)
[s12,s22,sums2]=sines(1000,1,50,52);
% 四图
figure(2)
set(figure(2),'Position',[46.5,107,1172,307]);
subplot(2,2,1)
[s_11,s_21,sums_1]=sines(1000,1.5,100);
subplot(2,2,2)
[s_12,s_22,sums_2]=sines(1000,1.5,200);
subplot(2,2,3)
[s_13,s_23,sums_3]=sines(1000,1.5,300);
subplot(2,2,4)
[s_14,s_24,sums_4]=sines(1000,1.5,400);
function [s1,s2,sums]=sines(pts,amp,n1,n2)
if nargin < 1
pts = 1000;
amp = 1;
n1 = 100;
n2 = n1*(1+0.05);
elseif nargin < 2
amp = 1;
n1 = 100;
n2 = n1*(1+0.05);
elseif nargin < 3
n1 = 100;
n2 = n1*(1+0.05);
elseif nargin < 4
n2 = n1*(1+0.05);
end
t1 = linspace(0,2*pi*n1,pts);
t2 = linspace(0,2*pi*n2,pts);
s1 = amp*sin(t1);
s2 = amp*sin(t2);
sums = s1 + s2;
plot(sums);
end