声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3378|回复: 3

请教:Matlab Fcn的数据传递。谢谢

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

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

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

x
您好:
如果您有建议就请回复帖子吧,谢谢。
比如说我有两个列向量已经在workspace中,分别为A=[1  2  3] ',B=[4  5  6] '。我想每次从这两个向量分别读取一个数,组成新的向量给Matlab Fcn模块传值,也就是第一次,在A中取 1 ,在B中取4 ,组成[1  4],再传给Matlab Fcn;第二次,在A中取 2 ,在B中取5 ,组成[2  5],再传给Matlab Fcn;等等。
我现在的做法是用两个From Workspace读取A和B中的数据,用Mux将它们混成一路信号,再输入到Matlab Fcn中,但错误提示Simulink model duru2(duru2是Matlab Fcn调用的M文件) was called with too few arguments。我在duru2中的第一行写的是:function y = duru2( a,b ),这里没问题吧?
没明白这个错误是什么意思,或者用别的方法给Matlab Fcn传递数据呢?

麻烦赐教,拜托了。

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2006-12-4 21:52 | 显示全部楼层
可能:
将函数声明改为function y = duru2( a),a是长度为2的向量
或者
不改变函数声明,在Matlab Fcn模块的参数设置中,即matlab function:下的框中输入为duru2(u(1),u(2))。如果没猜错的话你现在应该只输入了文件名duru2吧
 楼主| 发表于 2006-12-4 22:32 | 显示全部楼层
您好,谢谢。
我试了您建议的方法,但是不管哪一种方法,都是同样的错误提示:Simulink model duru2 was called with too few arguments,比如就完成两个数的相加,我在函数声明里输入了duru2,M函数是这样的:
function y = duru2( x)
%DURU2 Summary of this function goes here
%  Detailed explanation goes here
y=x(1)+x(2);

另一种方法也不行,这是为什么呢?
 楼主| 发表于 2006-12-5 16:56 | 显示全部楼层
问题解决了,可是不知道是什么原因,是看了别人的例子总结出来的。我把Matlab Fcn模块函数声明里的duru2改写为duru2file,M文件:
function y = duru2file( x)
%DURU2 Summary of this function goes here
%  Detailed explanation goes here
y=x(1)+x(2);
加上file这样就输出结果了,呵呵,解决了也不太明白。
还有个问题,我的仿真系统是个反馈系统,就是每次要把A、B中的各一个数和反馈回来的数组成新的向量给Matlab Fcn,而且好像不能用From Workspace这个模块读取数据了,因为它会对没有定义的时间点进行线形差值,而我要的只是A、B中的数据。我想出两个办法:
(1)用From File模块,把A、B保存两个mat文件,每次分别读取其中的一个数据,用Mux和反馈回来的数组成新的向量给Matlab Fcn,但是我不会每次只读一个数,From File好像是一次全部读入的。
(2)只把反馈回来的数据作为输入,然后另外的现场已经采集好的数据在Matlab Fcn模块用load一次全部读进来,每次只读一行,再和反馈
数据组成新的向量参与M函数中的计算,想用循环方式,可是没弄出来。

我就想到这两个办法,请赐教,谢谢。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-21 14:44 , Processed in 0.054128 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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