2016-11-06 12 views
0

Я пытаюсь построить диаграммы для данных фазовых констант, используя MATLAB, но хотя я смотрю на многие веб-страницы, в MATLAB нет аналогичного графика построения диаграмм. Не могли бы вы пояснить мне, как действовать, приводя некоторые примеры этой проблемы? Любая помощь будет действительно оценена. ДиапазонКак построить график в MATLAB?

Участок: = 10ℎ-10

ш: угловая частота

туалет: постоянной угловой частоты

Параметры для 1: 1 = 0,2 *, 2 = 0,4 *, 3 = 0,6 *, 4 = 0,8 *, ɛ1 = 1 * ɛ0, μ = μ0

Параметры 1: a1 = 0.08636cm, a2 = 0.8636cm, a3 = 2.286cm, a4 = 29.21cm, ɛ1 = 1 * ɛ0, μ = μ0

enter image description here

+1

Классический подход в 3-х точках: 1- Дать выражение из B с w как значение также в wc, 2 - цикл FOR i = 1: n, который хранится в массив w [i] = 1 и массив B [i] = (формула B с w = w [i ]), 3-график (w, B), как и каждые 2 отображения переменных y = f (x), не работает? Или я что-то пропустил? – marcoresk

+0

@marcoresk Большое спасибо за ваш ответ. Извините, но у меня действительно нет опыта, и я был бы очень благодарен, если бы вы отправили пример кода в качестве ответа. Спасибо заранее ... –

+0

Я думал, что у вас много опыта от вашего профиля репутации. Я отправил элементарный ответ, попробуй! – marcoresk

ответ

2

Как спросил ОП, это своего рода код Matlab. Предполагаю, что для отображения графика B с w в диапазоне [1,100] (но значения могут быть изменены) Первый случай имеет wc имеет 3 разных случая, будет отображен 4 разных участка B (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))); 

Если какие-то ошибки (в связи с «быстрой» записи) происходит с вами, сообщать о них в комментариях, и я исправлю и обновить код

+0

* «Попытка доступа к w (1.1), индекс должен быть положительным целым или логическим.» * Встречается ошибка. Есть идеи? –

+0

Я также добавил ** Диапазон сюжетов **, ** Угловая частота ** и ** постоянная угловая частота ** параметры на вопрос. Спасибо заранее ... –

+0

@ClintEastwood моя ошибка, я написал ответ «слишком быстро». (Я сделал небольшую ошибку). Обновите код с установленным частотным диапазоном. Другие спецификации были неявными и не влияли на код (предполагая, что w относится к диапазону частот без каких-либо изменений) – marcoresk