在一个图上添加两个不同的函数

时间:2019-08-22 15:48:53

标签: matlab

如何在一个绘图上添加两个不同的内置Matlab函数?我有这两个分别可以正常工作。

我知道这两个代码都使用L来实现其功能,因此我将它们都分别更改为RF,然后是L=F+R,但是没有。工作。

R = 1000.0;
freq = [15:5:1000]*1e9;
T = 20.0;
lwd = 0.5;
F = fogpl(R,freq,T,lwd);

freq = [1:1000]*1e9; 
RR=[0.75,1.75,2.5,3];

for irr=1:length(RR)
    R = rainpl(10000,freq,RR(irr));

    L=R+F;

    loglog(freq/1e9,L);
    hold on;

    grid
    title('rain attenuation')
    xlabel('Frequency (GHz)') 
    ylabel('Attenuation (dB)') 

end

我尝试的错误仅显示了L=R+F

"Matrix dimensions must agree.

Error in Untitled (line 22)
L=R+F;"

1 个答案:

答案 0 :(得分:2)

您的代码存在的问题是您要添加的向量的大小不相同。您需要更改freq。根据文档,fogpl需要freq处于10GHz-1000GHz范围内。因此,以下代码将起作用:

R = 1000.0;
freq = [10:1000]*1e9;
T = 20.0;
lwd = 0.5;
F = fogpl(R,freq,T,lwd);

% freq = [10:1000]*1e9;
RR=[0.75,1.75,2.5,3];

for irr=1:length(RR)
    R = rainpl(10000,freq,RR(irr));

    L=R+F;
    loglog(freq/1e9,L);
    hold on;
end
grid on
title('rain attenuation')
xlabel('Frequency (GHz)')
ylabel('Attenuation (dB)')

也不需要在每次迭代中都调用轴的标签和标题,因此将其移出了循环。

Desired image