有一个用于构造谐波的代码(具有不同频率值的余弦,范围从 0.8 到 11.1,步长为 0.1)。有必要输出一个图,其中有余弦的每个单独的频率迭代。
嗯,数量太多了(大约一百个)。分析如此混乱的依赖关系 y(x) 是很困难的。是否可以做到不输出所有一百个频率迭代,而仅输出选择性的迭代?例如,以频率 = 0.8:1:10.8 获得的那些 y(x)。即,对“保持”命令施加一个条件。同时,在不更改最初给出的频率值数组的情况下,以便始终能够将任何其他条件设置为“保持”。
clear,clc
%% Data
x = 0:1:100;
a = 5.76;
omega = 0.8:0.1:11.1;
k = omega ./ a;
[X,K,OMEGA] = meshgrid(x,k,omega)
y = cos(OMEGA - K .* X);
figure(1);
plot(x, y); hold on
title('y(x)');
grid on;
首先,
hold on
在您的代码中没有执行任何操作,因为您在绘图之后调用它:它仅意味着该轴上的任何未来绘图都不会丢弃现有绘图。
其次,
k
只是omega
的倍数,所以你不想将它包含在你的meshgrid
中。而不是
k = omega ./ a;
[X,K,OMEGA] = meshgrid(x,k,omega)
do(
;
对于避免大量输出也很重要)
[X,OMEGA] = meshgrid(x,omega);
K = OMEGA / a;
最后,要仅绘制部分结果,请使用例如
plot(x, y(1:10:end,:))
每 10 个显示一次。