声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2934|回复: 2

[编程技巧] 多输入多输出报错

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

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

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

x
自己写了一个三输入四输出的函数,在command window下调用,为什么会报这个错误?如何解决?

[x,y,width,height]=normalback(60,40,3)
??? One or more output arguments not assigned during call to 'C:\MATLAB7\work\hpas\normalback.m (normalback)'.

以下是源程序
function [x,y,width,height]=normalback(temp,triptime,step)
dis1=26;dis2=38;dis3=74;dis4=28;dis5=16;
dis=dis1+dis2+dis3+dis4+dis5;
r_width=8;bus_height=2;bus_width=4;
ax=30;ay=55;    bx=ax+30-r_width;by=ay-40;    cx=bx+r_width;cy=by;
dx=bx+90-r_width;dy=by+r_width;   ex=dx;ey=dy+30-r_width;
speed=dis/triptime;
if temp<=(dis5/dis)*triptime
   x=ex+dis5-speed*step;
   y=ey+6;
   width=4;height=2;
elseif temp<=((dis4+dis5)/dis)*triptime
    x=dx;
    y=(ey+4)-speed*step;
    width=2;height=4;
elseif temp<=((dis3+dis4+dis5)/dis)*triptime
    x=dx-2-speed*step;
    y=dy-bus_height;
    width=4;height=2;
elseif temp<=((dis5+dis2+dis3+dis4)/dis)*triptime
    x=cx-bus_height;
    y=cy+r_width-2-speed*step;
    width=2;height=4;
elseif temp<=triptime
    x=cx-bus_width-speed*step;
    y=ay+6;
    width=4;height=2;
end
回复
分享到:

使用道具 举报

发表于 2007-6-7 11:56 | 显示全部楼层
原帖由 coolhpas 于 2007-6-7 11:52 发表
自己写了一个三输入四输出的函数,在command window下调用,为什么会报这个错误?如何解决?

[x,y,width,height]=normalback(60,40,3)
??? One or more output arguments not assigned during call to 'C:\ ...


请保证每个返回处都对返回值赋了值。就你贴的代码来看,似乎应该满足这个要求,估计还有部分代码没有给出,自己仔细检查一下

[ 本帖最后由 eight 于 2007-6-7 12:24 编辑 ]
发表于 2007-6-7 12:03 | 显示全部楼层
返回的参数都是在if语句里赋的值,应该检查一下所列的条件是否总有一个是成立的,否则都不成立的话,就相当于没给返回值赋值了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-19 00:27 , Processed in 0.054503 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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