Matlab 版 (精华区)

发信人: ramjet (史努比狗), 信区: Matlab
标  题: [合集]求教:能否将m函数做成模块放到modle里?
发信站: 哈工大紫丁香 (2002年10月29日12:48:20 星期二), 站内信件


────────────────────────────────────────
 beingthink (萧萧)                    于 2002年10月04日11:12:14 星期五 说道:

3x!

────────────────────────────────────────
 ramjet (史努比狗)                    于 2002年10月04日12:07:47 星期五 说道:

方法1:使用Matlab Function 模块;
方法2:使用mcc -S -u n1 -y n2 yourmfile.m
你就会得到一个dll文件,然后使用Matlab S-function模块
其中n1是你的函数的输入维数,n2是函数输出维数。
方法3:把你的函数改写成S-fucntion函数的形式,然后再
使用Matlab S-Function模块.

────────────────────────────────────────
 beingthink (萧萧)                    于 2002年10月04日19:52:50 星期五 说道:

是一个包含循环语句的小函数,所以第二种方法好像更适合。
但其中有多个输入量,而S-function只有一个输入端口,
用mux简单组合也不行,怎么办呢?

────────────────────────────────────────
 ramjet (史努比狗)                    于 2002年10月04日22:07:28 星期五 说道:

多个输入也是一样的,u为一个array而已
建议你使用第一种方法

────────────────────────────────────────
 beingthink (萧萧)                    于 2002年10月05日10:24:32 星期六 说道:

可其中两个输入值不是array,而是单个的常数。还有我想用S-function里的
parameters.但提示说S-function parameter count mismatch,expecting 0
parameter while 2 was provded in the block dialog box.这个东东到底怎么用阿?
第一种方法恐怕不好,程序结构有点复杂,我在试试。
================
非常感谢!bow
================

────────────────────────────────────────
 ramjet (史努比狗)                    于 2002年10月05日12:02:11 星期六 说道:

你没有看懂错误提示,说明你根本没有在sfunction中的初始化函数
中设置输入和输出的个数。
sfunction 有特殊的格式的,不是一般的m文件,要比普通的m文件
麻烦很多,一般为了build成为real time的程序的时候才使用,所
以我建议你使用Matlab fucntion 。这样不必修改你原来的程序。
输入不是array可以mux,没有问题,多看看帮助吧。

────────────────────────────────────────
 beingthink (萧萧)                    于 2002年10月05日20:39:59 星期六 说道:

搞定了,非常非常感谢!

────────────────────────────────────────
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.057毫秒