试图使用分段条件在Matlab中绘制一个向量与另一个向量

时间:2019-04-13 20:39:12

标签: matlab

我正在尝试通过创建f向量,然后创建一个具有相同大小的空y向量,并填充满足特定条件的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 :(得分:0)

我刚刚运行了您的代码,它运行正常。由于阵列很大,可能要花一些时间,所以您只需要耐心。

我将y初始化为y = zeros(size(f)),因为如果您更改f会更方便。另外,我建议改用loglog(f, y)作图。