Matlab 两条水平线之间的填充区域
我想填充d1和d3之间的区域,这样就可以全部填充了,但是在区域命令之后,绘图线就不清晰了Matlab 两条水平线之间的填充区域,matlab,area,Matlab,Area,我想填充d1和d3之间的区域,这样就可以全部填充了,但是在区域命令之后,绘图线就不清晰了 fGhz=[1;2;3;4;5;6;7;8;9;10]; d1 = ones(10,1)*(600e-6); d2 = ones(10,1)*(2000e-6); d3 = ones(10,1)*(300e-6); plot(fGhz, lambdan_d10,'-ok',fGhz, d1, 'b',fGhz, d3, 'g',fGhz, d2, 'r','LineWidth',2) %area([f
fGhz=[1;2;3;4;5;6;7;8;9;10];
d1 = ones(10,1)*(600e-6);
d2 = ones(10,1)*(2000e-6);
d3 = ones(10,1)*(300e-6);
plot(fGhz, lambdan_d10,'-ok',fGhz, d1, 'b',fGhz, d3, 'g',fGhz, d2, 'r','LineWidth',2)
%area([fGhz(1) fGhz(10)],[d1(1) d1(1)],d3(1), 'EdgeColor', 'none', 'FaceColor', [.7 .7 .7]) % plot a line between (x1,y1) and (x2,y2), then fill down to a baseline (6)
%ylim([0 7e-3])
如果没有lambdan_d10描述,很难处理代码。不过,我认为这个问题并不重要。我认为它是正弦的。 使用矩形函数填充此区域:
% Your code
fGhz=[1;2;3;4;5;6;7;8;9;10];
lambdan_d10=sin(fGhz).*10^-2.5;
d1 = ones(10,1)*(600e-6);
d2 = ones(10,1)*(2000e-6);
d3 = ones(10,1)*(300e-6);
plot(fGhz, lambdan_d10)
plot(fGhz, lambdan_d10,'-ok',fGhz, d1, 'b',fGhz, d3, 'g',fGhz, d2, 'r','LineWidth',2)
% Fill area
XLIM=xlim();
rectangle('Position',[XLIM(1),d3(1),diff(XLIM),d1(1)-d3(1)],'FaceColor','y','EdgeColor','none')
此外,我建议您为此类报告数据提供一些模板。我的例子是:
%% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
%% Parameters
fGhz = [1;2;3;4;5;6;7;8;9;10];
d1 = 600e-6;
d2 = 2000e-6;
d3 = 300e-6;
%% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
%% Calculations
lambdan_d10 = sin(fGhz).*10^-2.5;
%% >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
%% Plot results
fig1 = figure();
hold all
% plot main information
plot(fGhz, lambdan_d10,'-ok','LineWidth',2);
% get plot parameters
XLIM = xlim();
% plot helpers
plot(XLIM,[d1 d1], '-b','LineWidth',2)
plot(XLIM,[d2 d2], '-r','LineWidth',2)
plot(XLIM,[d3 d3], '-g','LineWidth',2)
rectangle('Position',[XLIM(1),d3(1),diff(XLIM),d1(1)-d3(1)],'FaceColor','y','EdgeColor','none')
% annotation
xlabel('Hz')
ylabel('eggs')
title('lambda-spam')
?你说得很对,当然,等一下,lambdan_d10的值是多少?