关于分段函数的问题。。
请问下,分段函数的matlab程序?大括号在matlab里面怎么处理?简单处理 help if elseif else end
建议楼主发贴前,先搜索本版,关于分段函数的帖子有很多,肯定可以解决你的问题
新手的话建议读一下精华贴 [原创]写给学习 matlab 的新手们 http://forum.vibunion.com/thread-23494-1-1.html, 对你的提高必定有帮助 哦,最近我也遇到这样的问题
就是构造一段信号,在不同的时段出现不同频率的信号
楼主解决了没? 举个简单的例子,毕竟你的程序太长...
t = 0: 0.001 :10
x = sin(t).*(t<5) + cos(t).*(t>=5 & t<=10)
帮忙搜索下, 还真不好找
http://forum.vibunion.com/forum-viewthread-tid-3692-highlight-%B7%D6%B6%CE%BA%AF%CA%FD.html
基本如同版主给的!
基本上个人以为分段不复杂时, 使用ls的写法不错, 但较复杂时, 分段建立x1,x2,x3,x4,...
然後在x=也是可以 function y=myfun(t)
if t>=1 && t<=250
y=t-1/250+0.5*sin(0.2*t);
elseif t>=251 && t<=500
y=500-t/250+0.5*sin(0.2*t);
elseif t>=501 && t<=750
y=t-501/250+0.5*sin(0.2*t);
elseif t>=751 && t<=1000
y=1000-t/250+0.5*sin(0.2*t);
else
error('t的范围不对');
end 回复 2 # appleseed05 的帖子
谢谢你。 回复 3 # secondye 的帖子
解决了。。贴出程序如下。。
t = 0: 1 :1000
x=(0.5*sin(0.2*t)).*( t>=1&t<=250)+(0.7*sin(0.5*t)).*(t>=251 & t<=500)+( 0.5*sin(0.1*t)) .*(t>=501 & t<=750)+( 0.9*sin(0.6*t)).*(t>=751 & t<=1000);
plot(t,x);
回复 4 # zhouyang664 的帖子
非常感谢你。。呵呵。。 回复 5 # Happy99 的帖子
谢谢你。。 回复 6 # qibbxxt 的帖子
谢谢你。。 回复 8 # youshen 的帖子
一眼瞄下图, 直觉有问题? 原本8F与1F题目不同了:@Q
5F的用法
xx=), 0.7*sin(0.5*), 0.5*sin(0.1*), 0.9*sin(0.6*)];
还有LZ好像不需要一楼一楼谢吧! x1=sin(2*pi*50*t);x2=sin(2*pi*100*t)+sin(2*pi*50*t);
x=;
这样可以吗? 回复 13 # hitdely 的帖子
应该也可以!
但有点浪费储存空间(内存?) 本帖最后由 hitdely 于 2010-12-7 20:37 编辑
回复 14 # Happy99 的帖子
恩 是啊 没考虑这个事情 还得多学习啊
页:
[1]
2