Попытка построить вектор против другого вектора в Matlab, используя кусочные условия - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь сделать кусочный график частот (f) и глубины скина (y), создав вектор f, затем создав пустой вектор y того же размера и заполнив его так, как он соответствует определенным критериям.По какой-то причине код застревает при заполнении вектора y нулями в командном окне.Что я делаю не так?

Спасибо!

e = 80*8.854e-12;
mu = 12.566e-7;
sigma = 4;

f = 1000:100:10000000000;
y = zeros(1, 99999991);

for i=1:length(f)
if (sigma/(2*pi*f(i)*e) < 0.01) 
    y(i) = 1/((sigma/2)*sqrt(mu/e))
elseif ((sigma/(2*pi*f(i)*e) >= 0.01) && (sigma/(2*pi*f(i)*e) <= 100))
    y(i) = 1/(2*pi*f(i)*sqrt((mu*e/2)*(sqrt(1+(sigma./(2*pi*f(i)*e)*sigma./(2*pi*f(i)*e))) - 1)))
elseif (sigma/(2*pi*f(i)*e) > 100)
    y(i) = 1/(sqrt(pi*(2*pi*f(i)/(2*pi))*mu*sigma));
end
end

plot(log(f), log(y));

1 Ответ

0 голосов
/ 14 апреля 2019

Я только что запустил ваш код, и он отлично работает. Это может занять некоторое время из-за больших массивов, поэтому вам просто нужно набраться терпения.

Я бы инициализировал y как y = zeros(size(f)), так как это более удобно, если вы когда-либо измените f. Кроме того, я предлагаю использовать loglog(f, y) вместо графика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...