Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26 ![]() |
![]()
lz 不客气 多多交流 共同进步
我写的只是伪代码 用于表达个人的意见 主要用find( )语句确定数组中第一个为0的元素位置 然后使用赋值语句即可 建议lz出现的调试错误从语句变量的类型和维数考虑 这里是一个小demo 说明个人意见 希望可以对你有些帮助 a = ones(1,10); b = zeros(1,size(a,2)); a(1,8) = 0; a(1,6)=0; b = find(a==0); out(1,1: (b(1,1))) = a(1,1: (b(1,1))); out(1,(b(1,1)+1):size(a,2)) = 0; Thx for reading. PS:若还算满意,直接点击“Thanks”,再次登陆时亦便于查看回答是否真的帮到你了。 通过点击本人帖子旁边的ID 可以使用“发送悄悄话给silas_xue”与我进行联系 个人观点 仅供参考 多多交流 相互学习 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-07-16
帖子: 8
声望力: 0 ![]() |
![]()
可能我开始说的不太清楚,我再详细给你描述一下:我的输入是随时间变化的,除了跳变点处其他都是连续的,没法用矩阵表示。还有当前面输出第一次为0时就要求后面全部输出0,不需要知道一共几个0点,关键是找出这个跳变点,所以我感觉用find命令可能不行
|
![]() |
![]() |
![]() |
#3 |
高级会员
注册日期: 2008-11-01
年龄: 39
帖子: 406
声望力: 26 ![]() |
![]()
lz 我看到贴上来的图是阶跃函数和冲击函数的线性组合 所以以为是离散点 不好意思
说说我的个人意见 根据你的描述 如果是幅值连续函数 应当是非连续函数中第一类断点的判断问题 满足左连续 右连续 但是改点不连续 跳变的点 由于仍有数学意义 方法上 可以归结到奇异点检测的范畴 lz可以google或者baidu一下 先了解一下这方面的数学知识 然后看一下这方面检测的经典方法 再做决定选择何种方法 例如 可以使用小波进行奇异点的检测 如果从纯数学角度考虑 可以求左右导数进行比较 把导数值大于某一阈值的点认为是解 若跳动幅度普遍较大 处理上 可以把左右导数近似为左右差分 然后进行比较 希望可以对你有些帮助 |
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2009-07-16
帖子: 8
声望力: 0 ![]() |
![]()
silas xue,我的问题好像没有你说的这么专业,你理解的太深了。现在我把我的simulink仿真模型和m文件放在附件中。麻烦你再给我看一下,谢谢!
注释:我用的是MATLAB6.5。其他的m文件都是对的,不用做任何修改,你只需要编写蓝框中的wave文件。不加wave时的输出就是前面我发的那个图片。 运行整个模型前,需要先运行table和TAB文件。 |
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2009-07-16
帖子: 8
声望力: 0 ![]() |
![]()
silas xue,麻烦你再帮我解决一下这个问题,急需!非常感谢!
|
![]() |
![]() |
![]() |
#6 |
初级会员
注册日期: 2009-07-16
帖子: 8
声望力: 0 ![]() |
![]()
silas xue,麻烦你再帮我解决一下这个问题,急需,谢谢
|
![]() |
![]() |