如何在一个绘图上添加两个不同的内置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;"
答案 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)')
也不需要在每次迭代中都调用轴的标签和标题,因此将其移出了循环。