对“保持”命令的工作施加条件

问题描述 投票:0回答:1

有一个用于构造谐波的代码(具有不同频率值的余弦,范围从 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;

enter image description here

matlab matlab-figure
1个回答
0
投票

首先,

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 个显示一次。

© www.soinside.com 2019 - 2024. All rights reserved.