如何在 MATLAB 中绘制 − 图?

How to plot − diagram in MATLAB?

我正在尝试使用 MATLAB 为给定的相位常数绘制 图,但是虽然我看过很多网页,但没有类似的绘图示例 - MATLAB 中的图表。您能否通过举一些有关此问题的示例来说明如何进行?非常感谢任何帮助。

绘图范围: =10ℎ−10

w : Angular 频率

wc : 常数 Angular 频率

第一个的参数: 1=0.2*, 2=0.4*, 3=0.6*, 4=0.8* , ɛ1=1* ɛ0, μ= μ0

1st的参数: a1=0.08636cm, a2=0.8636cm, a3=2.286cm, a4=29.21cm, ɛ1=1* ɛ0, μ= μ0

正如 OP 所问,这是一种 Matlab 代码。 我假设用 [1,100] 范围内的 w 映射 B 的图(但值可以更改) 第一个案例有 wc 有 3 个不同的案例,B 的 4 个不同图(B1、B2、B3 和 B4)将以四种不同的颜色映射

    %constant inizialization
    mu = 1.2566E-6;
    e = 1;
    start_f = 10000; %10 MHz start frequency range
    end_f = 10000000; %10 GHz end frequency range 
    step = 10 %plot the function every "step" Hz (ONLY INTEGER NUMBERS ALLOWED)
    k = 1;
    % function of B example: B = w*sqrt(mu*e)*sqrt(1-((wc^2)/w));

    %vectors initialization to avoid the "consider preallocation" Matlab not-critical warning
    range_f = ceil((end_f - start_f)/step) + 1;
    w = zeros(range_f);
    B1 = zeros(range_f);
    B2 = zeros(range_f);
    B3 = zeros(range_f);
    B4 = zeros(range_f);

    for i=start_f:step:end_f %from 10 MHz to 10 GHz with steps of 1 Hz
    %store i in the i-cell of vector w
      w(k) = i;
%values that need to be updated every time
      w1 = 0.2*w(i);
      w2 = 0.4*w(i); 
      w3 = 0.6*w(i);
      w4 = 0.8*w(i); 
%four different results of B
      B1(i) = w(i)*sqrt(mu*e)*sqrt(1-((w1^2)/w(i)));
      B2(i) = w(i)*sqrt(mu*e)*sqrt(1-((w2^2)/w(i)));
      B3(i) = w(i)*sqrt(mu*e)*sqrt(1-((w3^2)/w(i)));
      B4(i) = w(i)*sqrt(mu*e)*sqrt(1-((w4^2)/w(i)));

      k = k+1;
    end
%plot the 4 lines    
    plot(w,B1,'r') %red line of B1 = f(w) 
    hold on
    plot(w,B2,'g') %green line of B2 = f(w) 
    hold on
    plot(w,B3,'b') %blue line of B3 = f(w) 
    hold on
    plot(w,B4,'k') %black line of B4 = f(w) 

4 个不同的案例必须用 4 个图表示(在这个例子中它们被覆盖)。

最后一个符号可以用同样的方式完成(你有 4 个常量参数 a1、a2 等)这次不依赖于 w。所以

  B1a(i) = sqrt((w(i)^2)*mu*e - ((pi^2)/a1)));
  B2a(i) = sqrt((w(i)^2)*mu*e - ((pi^2)/a1)));
  B3a(i) = sqrt((w(i)^2)*mu*e - ((pi^2)/a1)));
  B4a(i) = sqrt((w(i)^2)*mu*e - ((pi^2)/a1)));

如果您遇到一些错误(由于"fast"写作),请在评论中报告它们,我会更正并更新代码