作者sppmg (sppmg)
看板MATLAB
标题Re: [问题] 用plot作图 但是图跑不出来
时间Fri Jun 29 02:47:29 2018
就以下程式改写。
看起来你误会 plot 是打点上去,并且不会清除。
: for x=linspace(-2,6)
: if x<-1
: plot(x,exp(x+1));
: elseif -1<=x<5
: plot(x,2+cos(pi*x));
: elseif x<=5
: plot(x,10*(x-5));
: end
: end
matlab 中可以用:
x = linspace(-2,6)
y(numel(x)) = 0 ; % 预配置记忆体空间
% 用 logical array 标记选定元素
bmap = { ...
x < -1 , ...
-1 <= x & x < 5, ... % 用 & 而非 && ,因为两边是 logical array
x > 5}; % 你这里是不是打错成 < ?
% 储存 function handle,方便回圈呼叫、动态呼叫
func = { ...
@(x)exp(x+1), ...
@(x)2+cos(pi*x), ...
@(x)10*(x-5) } ;
for n = 1:numel(bmap)
% 把选定区段经计算後存到 y 的相同位置。
y(bmap{n}) = func{n}( x(bmap{n}) ) ;
end
plot(x,y) ;
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 175.97.51.122
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1530211653.A.74A.html
※ 编辑: sppmg (175.97.51.122), 06/29/2018 02:49:46
1F:推 sunev: 推 06/29 09:24
2F:推 guahuan: 谢谢你!!! 06/29 17:02