24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1869  |  回复: 13
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

木子8268

木虫 (正式写手)

[求助] matlab程序中调用m文件的问题

已经有程序aaa.m,运行可以计算得到几十个矩阵,或者说上百个变量的值;
接下来写程序bbb.m,想在b中直接调用这些变量进行些运算

但是在程序b中直接写‘aaa.m’这样的语句,会出现如下警告,没有继续往下运行:

Warning: Direct access of structure fields returned by a function call (e.g.,
call to aaa) is not allowed. See MATLAB 7.10 Release Notes, "Subscripting Into Function Return Values" for details.
> In bbb at 6
??? Attempt to reference field of non-structure array.

Error in ==> bbb at 6
aaa.m

貌似意思是只可以调用函数,不能这样调用脚本文件?

另:如果在command windows里可以直接这样运行,难道我每次运行bbb之前先手动运行aaa?
我试过system命令貌似也不行啊
求虫子支个好招,aaa写成函数有点不太可能啊,输出的变量太多了

谢谢了!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

WWJ1991

木虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
木子8268: 金币+1 2013-07-24 16:06:05
xiegangmai: 金币+1, 谢谢参与! 2013-07-24 22:35:56
在aaa中将bbb中要用到的变量全部定义成全局变量,即用global定义。
3楼2013-07-22 21:35:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 14 个回答

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
木子8268: 金币+2, 有帮助 2013-07-24 16:05:55
xiegangmai: 金币+1, 谢谢参与! 2013-07-24 22:35:51
aaa.m和bbb.m写进一个m文件中。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2013-07-22 18:20:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

匿名

用户注销 (职业作家)

Matlab专家

★ ★
感谢参与,应助指数 +1
木子8268: 金币+1 2013-07-24 16:06:12
xiegangmai: 金币+1, 谢谢参与! 2013-07-24 22:36:03
本帖仅楼主可见
4楼2013-07-22 22:41:41
已阅   申请仿真EPI   回复此楼   编辑   查看我的主页

Felix朱飞

新虫 (小有名气)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
木子8268: 金币+1 2013-07-24 16:06:17
xiegangmai: 金币+2, 谢谢参与! 2013-07-24 22:36:20
我怎么看着像是楼主写MATLAB函数调用有问题?

aaa.m中采用以下结构
function returnS = aaa(A,B)
……
(最好把运算得到的矩阵用结构体或者单元数组封装)
end

bbb.m中采用以下结构
function bbb()
(调用aaa.m,返回的C就是aaa运算后的矩阵)
C=aaa.(M,N);
......
end

运行调试时,直接在命令窗口输入bbb即可,而不需要先运行aaa。

当然先运行aaa也可以。可把aaa运行后的工作空间中有用的矩阵保存成.mat,再在bbb中读入。MATLAB中数据传递的方式方法多得很。
5楼2013-07-24 09:27:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见