2016-11-06 124 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