24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 3319  |  回复: 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的回帖

小新爱小白

金虫 (小有名气)

引用回帖:
594464楼: Originally posted by lhfx_313 at 2011-04-11 20:32:11
应该分模块实现,一个主模块+几个子模块(每个子模块也就对应一个函数,也就是以 function开头)。
写一个main.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';
NIND=40;
MAXGEN=50;
GGAP=0.9;
trace=zeros(MAXGEN,2);
BaseV=crtbase(15,8);
Chrom=crtbp(NIND,BaseV)+ones(NIND,15);
gen=0;
ObjV=taretalloc(Chrom);
while gen FitnV=ranking(-ObjV);
SelCh=select('sus',Chrom,FitnV,GGAP);
SelCh=recombin('xovsp',SelCh,0.7);
f=rep([1;8],[1,15]);
SelCh=mutbga(SelCh,f);SelCh=fix(SelCh);
ObjVSel=taretalloc(SelCh);
[Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel);
gen=gen+1;
trace(gen,1)=max(ObjV);
trace(gen,2)=sum(ObjV)/length(ObjV);
end
[Y,I]=max(ObjV);Chrom(I,,Y
plot(trace(:,1),'-.');hold on;
plot(trace(:,2));grid
Legend('解的变化','种群均值的变化')
这个程序有什么问题,怎么总是提示错误,也运行不了呢?或者请指教怎么在Matlab 7.7.0(R2008b)里边具体步骤。
O(∩_∩)O谢谢
天天开心,事事顺利
11楼2012-08-11 20:05:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 15 个回答

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的回帖

cldky11

禁虫 (小有名气)

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

5楼2011-04-18 21:24:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见