声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1507|回复: 8

[编程技巧] 关于主程序与子程序写在一个m文件里

[复制链接]
发表于 2009-11-20 21:25 | 显示全部楼层 |阅读模式

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

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

x
为了方便,我想把子程序都放在主程序里面。
根据我搜到的帖子,说是写成下面形式即可,主要是在主程序也加上function
function zz
code...

function yy= fun(...)
code
return

但是我这样还是出错,错误出现在主程序的function处,显示为:

function definitions are not permitted at the prompt or in scripts.

希望帮忙,非常感谢。
回复
分享到:

使用道具 举报

发表于 2009-11-20 22:04 | 显示全部楼层

回复 楼主 东山客 的帖子

个人水平专业有限, 建议楼主说清楚些!
给出简化后的程序, 及怎呼叫!
 楼主| 发表于 2009-11-20 22:13 | 显示全部楼层
我的意思是,我在主程序的第一行加了“function 文件名”命令,在后面的子程序开头也加了function。这样还是出错,
显示是function definitions are not permitted at the prompt or in scripts.

希望我说清楚了。谢谢。
发表于 2009-11-20 22:17 | 显示全部楼层
楼主的意思是把主程序和子程序放在同一个m文件里,然后运行主程序的时候会调用子程序的内容?
这是可以的,看看这个测试文件 zz.m (115 Bytes, 下载次数: 4) ,文件内容如下:
function zz()
disp('main function --> zz');
pp();
end
function fun=pp()
disp('Sub funciton pp called');
end
运行结果:
>> zz
main function --> zz
Sub funciton pp called

评分

1

查看全部评分

发表于 2009-11-20 22:21 | 显示全部楼层

回复 板凳 东山客 的帖子

个人水平专业有限, 感觉还是没说明白!

还好我试出LZ的错误讯息了!
LZ是否直接将程序复制至command win执行!? 那不行!
是要存成一m-function档案后, 再呼叫!

[ 本帖最后由 ChaChing 于 2009-11-20 22:33 编辑 ]
 楼主| 发表于 2009-11-20 22:29 | 显示全部楼层
问题解决了。谢谢。
接着以上面例子为例
我错误的原因是function zz()上一行加了句clc;
这样就总是出错。加在function zz()下一行就没有问题。

这样看来,function zz()必须是第一行?

评分

1

查看全部评分

发表于 2009-11-20 22:38 | 显示全部楼层

回复 6楼 东山客 的帖子

个人水平有限, 若LZ一开始给齐完整格式:出错代码和出错提示!
可能大家较容易debug
 楼主| 发表于 2009-11-20 22:43 | 显示全部楼层
不好意思。本人编程能力一般。确实没想到是那句clc的问题,看了上面的例子,对应着逐渐注释程序才找到的错误。
发表于 2009-11-20 23:56 | 显示全部楼层

回复 8楼 东山客 的帖子

没关系! 大家互相从错误中学习经验!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-16 21:00 , Processed in 0.063973 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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