Matlab 在一个绘图上添加两个不同的函数
如何在一个绘图上添加两个不同的内置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
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代码,但还是要感谢你的输入,我编辑了这篇文章。