x=(0:0.01:6)'; k=0.2:0.1:2; y=sin(x)*k; plot(x,y) 请解释下这段程序,特别是第一句.

问题描述:

x=(0:0.01:6)'; k=0.2:0.1:2; y=sin(x)*k; plot(x,y) 请解释下这段程序,特别是第一句.

x=(0:0.01:6)'是将变量X进行转置,得到一个列向量601*1,
k=0.2:0.1:2是函数y=Asin(x)的振幅的取值范围,是一个行向量1*19,
y=sin(x)*k中sin(x)是一个列向量,或601*1的矩阵,k为1*19的矩阵,y为601*19的矩阵,根据矩阵 相乘的法则,y写成行向量的形式为y=[k1*sin(x),k2*sin(X),...k19*sin(x)],其中kn*sin(x)为601*1的列向量.
plot(x,y),在matlab中二维矩阵是按照列顺序存储的,根据plot的规则,每取出一个向量x,对应从y中顺序取出和x长度相等的数据,即取出一列数据kn*sin(x).如果y中数据没有取完,则重新以x为长度,读取y的数据,本例*读取19次,故plot(x,y)实际是画了19条振幅不同的正弦曲线.