2016-11-06 128 views
0

我想绘制-图给出的相位常数使用MATLAB,但虽然我看了很多网页,但在MATLAB中没有类似的绘图示例图。你能否澄清一下如何通过举例说明这个问题?任何帮助真的会被赞赏。如何在MATLAB中绘制图表?

剧情范围: =10ℎ-10

瓦特:角频率

WC:恒定角频率

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

参数第一: A1 =0.08636厘米,A2 =0.8636厘米,A3 =2.286厘米,A4 =29.21厘米,ɛ1= 1 *ɛ0,μ=μ0

enter image description here

+1

的经典方法在3点:1编写一个表达式的B与w作为一个值也进入wc,2 - 一个存储到数组w [i] = 1且数组B [i] =(其中w = w [i ]),3-曲线(w,B)就像每2个变量曲线y = f(x)不起作用?或者我错过了什么? – marcoresk

+0

@marcoresk非常感谢您的回复。对不起,但我真的没有经验,如果您发布示例代码作为答案,将非常感激。在此先感谢... –

+0

我认为你有很多来自你的声誉配置文件的经验。我发布了一个初级答案,试试吧! – marcoresk

回答

2

作为OP问这是一种Matlab代码。 我假设在w [1,100]范围内绘制B的图形(但可以更改值) wc有3个不同的情况,B(B1,B2,B3和B4)的4个不同图形将被映射四种不同的颜色

%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等),这个函数不依赖于这次。所以

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))); 

如果一些错误(因“快”写)时给你,在评论报告他们,我会纠正和更新代码

+0

*“尝试访问w(1.1);索引必须是正整数或逻辑”。*遇到错误。任何想法? –

+0

我还添加**绘图范围**,**角频率**和**一个常数角频率**参数的问题。在此先感谢... –

+0

@ClintEastwood我的错,我写了答案“太快”。 (我犯了一个小错误)也更新了调整频率范围的代码。其他规范首先是隐式的,对代码没有影响(假设w属于没有其他变化的频率范围) – marcoresk