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

Matlab 在一个绘图上添加两个不同的函数,matlab,Matlab,如何在一个绘图上添加两个不同的内置Matlab函数?我有这两个单独工作的很好 我知道这两个代码都使用了L来实现其功能,所以我将它们都改为R和F,然后改为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 = rain

如何在一个绘图上添加两个不同的内置Matlab函数?我有这两个单独工作的很好

我知道这两个代码都使用了
L
来实现其功能,所以我将它们都改为
R
F
,然后改为
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;"

代码的问题是,要添加的向量的大小不同。您需要更改
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)')
此外,轴和标题的标签不需要在每次迭代中调用,因此它被移动到循环之外


您重新定义了
freq
向量,因此
R
F
的大小不同,因此无法求和。如果你用相同的
freq
向量计算它们,你就可以求和了。@SecretAgentMan是的,这是OPs代码,但还是要感谢你的输入,我编辑了这篇文章。