24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2025级博士研究生招生报考通知
查看: 3321  |  回复: 14

wenqiang1938

铜虫 (小有名气)

[交流] 【求助】matlab 中,几个m文件调用已有10人参与

matlab中,我编了几个m文件,单独运行没有问题,但是我想把几个m文件相互调用起来在一个m文件中运行,怎么样编写程序去调用这几个m文件。或者推荐哪些参考书?谢谢大家。(其中一个m文件输出是另一个m文件的输入)

[ Last edited by jjdg on 2011-4-19 at 00:21 ]
回复此楼
一切皆有可能
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lhfx_313

至尊木虫 (文坛精英)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
微尘、梦想(金币+2): 谢谢回复…… 2011-04-12 15:05:34
应该分模块实现,一个主模块+几个子模块(每个子模块也就对应一个函数,也就是以 function开头)。
写一个main.m作为主模块,然后调用其他的各个子模块(调用各个子函数)就行了。
举个例子:实现两个数的相加和相减
main.m   %%主函数
c1=Add(a,b); %调用子函数
c2=Add(a,b);  %调用子函数

Add.m(如下)
function c1=Add(a,b)
c1=a+b;

Subtract.m(如下)
function c2=Subtract(a,b)
c2=a-b;

[ Last edited by lhfx_313 on 2011-4-11 at 20:42 ]
2楼2011-04-11 20:32:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

colbertli

禁虫 (著名写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
微尘、梦想(金币+2): 谢谢回复…… 2011-04-12 15:05:54
本帖内容被屏蔽

3楼2011-04-11 20:38:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fyzhu

木虫 (正式写手)

学习了
好好学习,天天向上
4楼2011-04-15 16:27:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cldky11

禁虫 (小有名气)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+1): 谢谢回贴交流…… 2011-04-19 15:16:11
本帖内容被屏蔽

5楼2011-04-18 21:24:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+1): 谢谢回复! 2011-04-19 15:16:40
互相调用2个办法:

==========
1.子函数
==========

都写在一个文件中,例如叫main.m

function main()
%主函数内容

subFunc1(); % 掉用子函数1

subFunc2(); % 掉用子函数2
end

function subFunc1()
% 子函数1内容
end

function subFunc2()
% 子函数2内容
end

======================
2.多个m文件放在同一个文件夹下
======================
把上面的3个函数分别写在3个m文件中,文件命名必须与function name相同,然后就可以互相调用了.
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
6楼2011-04-19 00:41:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

高明敏

铁杆木虫 (正式写手)


微尘、梦想(金币+1): 谢谢参与,欢迎常来! 2011-04-19 15:17:04
引用回帖:
Originally posted by wenqiang1938 at 2011-04-11 11:50:29:
matlab中,我编了几个m文件,单独运行没有问题,但是我想把几个m文件相互调用起来在一个m文件中运行,怎么样编写程序去调用这几个m文件。或者推荐哪些参考书?谢谢大家。(其中一个m文件输出是另一个m文件的输入) ...

matlab写的好的有东北大学的  薛定宇,权威书! 我看着挺好的!
你说的应该就是函数嵌套,每一个M文件都起一个名,里面的函数名跟文件名一样! 之后就直接调用函数名就行了!这是一种吧
7楼2011-04-19 13:21:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jswoo

铁杆木虫 (著名写手)

阿拉多梦


小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想: 呵呵……希望能给楼主一些实质性的回答! 2011-04-19 15:18:02
这个很容易的~~~~
8楼2011-04-19 14:38:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jswoo

铁杆木虫 (著名写手)

阿拉多梦

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
微尘、梦想(金币+2): 谢谢回复…… 2011-04-20 16:26:22
引用回帖:
Originally posted by wenqiang1938 at 2011-04-11 11:50:29:
matlab中,我编了几个m文件,单独运行没有问题,但是我想把几个m文件相互调用起来在一个m文件中运行,怎么样编写程序去调用这几个m文件。或者推荐哪些参考书?谢谢大家。(其中一个m文件输出是另一个m文件的输入) ...

给你举个非常简单的例子:

M1文件:必须保存为文件名 exam.m(保存的文件名需和自定义函数名同名)

function []=exam(a,b)       % a  b 为输入参数;  [ ]为输出参数
r=a+b;   % r为计算结果,返回给[]输出的

M2文件:假如这个为主函数(保存的文件名需和自定义函数名同名)

function main :必须保存为文件名 main.m
a=2;
b=1;
exam(a,b)  % 调用M1函数

-----------------------
在运行窗口输入:
main

输出结果为:
3
=================

就这样啊~~~~
9楼2011-04-20 10:47:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小新爱小白

金虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
569112楼: Originally posted by wenqiang1938 at 2011-04-11 11:50:29
matlab中,我编了几个m文件,单独运行没有问题,但是我想把几个m文件相互调用起来在一个m文件中运行,怎么样编写程序去调用这几个m文件。或者推荐哪些参考书?谢谢大家。(其中一个m文件输出是另一个m文件的输入)
...

Function [eval]=targetalloc (chrom)
[m,n]=size(chrom);
p=[87 52 11 78 72 69 94 72 36 28 27 74 24 78 45;87 52 11 78 72 69 94 72 36 28 27 74 24 78 45;87 52 11 78 72 69 94 72 36 28 27 74 24 78 45;87 52 11 78 72 69 94 72 36 28 27 74 24 78 45;87 52 11 78 72 69 94 72 36 28 27 74 24 78 45;87 52 11 78 72 69 94 72 36 28 27 74 24 78 45;62 87 70 22 80 42 43 90 13 95 18 19 12 61 35;48 20 42 16 43 58 69 03 34 72 15 24 29 30 75];
w=[47 97 76 62 48 77 33 74 54 65 43 35 63 66 57];
for i=1:m
for j=1:15
chrom(i,j)=p(chrom(i,j),j);
end;
end
eval=chrom*w';
这个程序有什么问题,怎么总是提示错误,也运行不了呢?或者请指教怎么在Matlab 7.7.0(R2008b)里边具体步骤。
谢谢……
天天开心,事事顺利
10楼2012-08-11 20:05:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wenqiang1938 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见