声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1904|回复: 10

[编程技巧] 输出变量太多的问题导致程序出错

[复制链接]
发表于 2007-6-28 11:14 | 显示全部楼层 |阅读模式

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

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

x
就是一个求误差的程序,本来应该很简单,可是不知道为什么出现如下错误:
??? Error using ==> error
Too many output arguments.
我定义的er应该是一个数呀,怎么会有太多的输出变量????
不知道是不是那个循环出问题了
请哪位高手解决一下了,谢谢了
程序如下:
function er=error(x,y)
%compute error
%input:
%x orignal signal
%y restored signal
%output:
%er error
e=x-y;
el=0;
xl=0;
for m=1:size(x,1)
    for n=1:size(x,2)
        el=el+e(m,n)^2;
        xl=xl+x(m,n)^2;
    end
end
er=sqrt(el)/sqrt(xl);

[ 本帖最后由 eight 于 2007-6-28 11:45 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-6-28 11:23 | 显示全部楼层
error是MATLAB本身自带的函数
请重新命名你编写的函数。

评分

1

查看全部评分

发表于 2007-6-28 11:26 | 显示全部楼层
帮运行了下,没有错误呀
你的x,y 是否长度一致?
 楼主| 发表于 2007-6-28 11:30 | 显示全部楼层
这样呀
哎,还是对matlab了解太少
改了改,ok了
谢谢rocwoods了
 楼主| 发表于 2007-6-28 11:33 | 显示全部楼层
是一致呀
lxq不改函数名也能运行?
我这不行
怪!
发表于 2007-6-28 11:46 | 显示全部楼层
原帖由 chuxue 于 2007-6-28 11:14 发表
就是一个求误差的程序,本来应该很简单,可是不知道为什么出现如下错误:
??? Error using ==> error
Too many output arguments.
我定义的er应该是一个数呀,怎么会有太多的输出变量????
不知道是不是 ...


初学的话,建议多看看各置顶贴以及里面提到的帖子
 楼主| 发表于 2007-6-28 12:03 | 显示全部楼层
这个问题是输出变量太多造成的吗?
应该是2楼说的函数名出问题了,运行时把error看成是自带的函数了,所以出现Too many output arguments.
我的输出变量只有一个值,就是误差值
改了函数名就没问题了
发表于 2007-6-28 13:47 | 显示全部楼层
楼主编写的函数本身没有错误。
这个问题一方面是我说的函数名的问题,另一方面可能跟你的MATLAB搜索顺序也有关系。我猜楼主没修改之前的error函数存放的文件夹的搜索优先级排在MATLAB自带的error所在文件夹之后。
而lxq的正好与之相反。也就是说楼主的MATLAB最先找到的是MATLAB自带的error函数,而对楼主编写的error函数根本就没有搜索到。
而lxq的MATLAB最先找到的是后来写的error函数,把MATLAB自带的忽略了。因而运行没有错误。
可以敲入pathtool看MATLAB的搜索优先顺序。

[ 本帖最后由 rocwoods 于 2007-6-28 13:50 编辑 ]
 楼主| 发表于 2007-6-28 15:44 | 显示全部楼层
哦,这样呀
明白了,我就觉得程序没问题
建议eight同学把标题重新改一下,
我猜他只看了
??? Error using ==> error
Too many output arguments.
而没有看程序
才会把标题改成“输出变量太多的问题导致程序出错”
发表于 2007-6-28 16:27 | 显示全部楼层
原帖由 chuxue 于 2007-6-28 11:33 发表
是一致呀
lxq不改函数名也能运行?
我这不行
怪!


我是在另外一个函数名下运行你的程序的

函数名并不是error
发表于 2007-6-28 18:16 | 显示全部楼层
原帖由 chuxue 于 2007-6-28 12:03 发表
这个问题是输出变量太多造成的吗?
应该是2楼说的函数名出问题了,运行时把error看成是自带的函数了,所以出现Too many output arguments.
我的输出变量只有一个值,就是误差值
改了函数名就没问题了


我是站在你的立场上面来描述这个帖子,毕竟在大家没有给出答案之前这是你得到的matlab出错信息:??? Error using ==> error
Too many output arguments.
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-6-12 05:08 , Processed in 0.058813 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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