声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 877|回复: 2

[编程技巧] 编程出错

[复制链接]
发表于 2006-10-15 23:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
最近刚刚学习 matlab 编了一个程序急需用 可是用的时候出现问题  要解决的问题是:输入数组X=[12,33,44,55,32,12,.....];求
b=Median((xi-xj)/(i-j))其中1<j<i<n 就是求所有(xi-xj)/(i-j)值中的中值,  我编的程序是
function [w,f]=dmy(x);
q=0;
b=x;
a=length(x);
for j=2:a-2
    for i=j+1:a-1
        q=q+1;
        m(q)=(b(i)-b(j)/(i-j));
    end
end
w=m(q)
f=median(w)

结果不正确
问题好像出在,通过循环得出的多个(xi-xj)/(i-j)值,想付给一个新的数组w ,我也不知道我的程序那里出错了,当matlab程序中间计算的值想作为一个数组来输出以备用,应给怎样来处理,我这点很是不懂, 特此在此向各位高手请教,希望有好心人给与我帮助,感激不尽 !!!
请各位大虾给小弟点帮助 跪谢!!!

[ 本帖最后由 xinyuxf 于 2007-7-22 16:20 编辑 ]
回复
分享到:

使用道具 举报

发表于 2006-10-16 10:19 | 显示全部楼层
原帖由 dongmy526 于 2006-10-15 23:24 发表
最近刚刚学习 matlab 编了一个程序急需用 可是用的时候出现问题  要解决的问题是:输入数组X=[12,33,44,55,32,12,.....];求
b=Median((xi-xj)/(i-j))其中1 ...


改进的地方:
1. matlab与C等语言不同,matlab中数组下标从1开始;
2. w = m(q) 语句只把数组m最后一个元素赋值给w,所以要把最后两句改为一句: f = median(w)
3. median函数并非求数组的中值,我搜索了一下matlab的help,暂时还没有找到这样的函数,你试试medfilt1,就是中值滤波函数,看看有没有收获
4. 如果有需要完善程序,则最好减少使用循环
 楼主| 发表于 2006-10-16 15:55 | 显示全部楼层

谢谢楼上的帮助

小弟感谢   回去看看  改善一下
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 07:14 , Processed in 0.063254 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表