2015-10-16 88 views
0

这里是我使用屏蔽区域在Matlab

x = 0.001:0.05:4*pi; 
f = cos(x)+10*sin(x)./x; 
hold on 
plot(x,f,'r') 
axis([0,4*pi,-3,3]) 
grid on 

bid = x(abs(f)>1); 
ha = area([0 bid], [10 10]); 
hold off 

此代码看起来在允许的能带隙的代码。我想找到f(x)> 1的绝对值,然后遮蔽这些区域的值,因为这些是不允许的状态。所以我发现在那里 我怎么会去这样做的x值?

+0

我得到运行代码的错误:使用面积'错误(第35行) X必须是相同的长度,Y.' - MATLAB R2015a – rayryeng

回答

0

这是否胜任这项工作?

x = 0.001:0.05:4*pi; 
f = cos(x)+10*sin(x)./x; 
figure(); 
hold on 
plot(x,f,'r') 
axis([0,4*pi,-3,3]) 
grid on 

idx = abs(f) > 1; 
ys = zeros(size(x)); 
ys(idx)=f(idx); 
ha = area(x, ys); 
+0

效果很好谢谢 –