24小时热门版块排行榜    

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

yhyffrshuh

木虫 (正式写手)

流浪者一枚

[求助] matlab重复调用子程序的问题

问题
如有以下的子程序
[train,val,test]=dividerand(A,0.8,0,0.2);
重复运行上述子程序,
当[mean(train),std(train)]=[mean(test),std(test)]时,终止

程序如下:
A=[1 2 3 4 5 6 7 8 9 10];
[train,val,test]=dividerand(A,0.8,0,0.2);
if [mean(train),std(train)]=[mean(test),std(test)];
    break
elseif [mean(train),std(train)]~=[mean(test),std(test)] ;   
???         这里回到第一行子程序(实际上我的子程序比这个复杂),该怎么写?
end
回复此楼
Allhumanwisdomissummedupintwowords:waitandhope.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yhyffrshuh

木虫 (正式写手)

流浪者一枚

引用回帖:
2楼: Originally posted by zjliu1265 at 2012-04-30 18:01:59:
建议用while程序结构写程序:
epsv=1e-12;
A=;
while abs(mean(train)-mean(test))>epsv&abs(std(train)-std(test))>epsv;
    =dividerand(A,0.8,0,0.2);
end

按你的程序运行出错
??? Error using ==> minus
Matrix dimensions must agree.

我实际的子程序比较复杂,将子程序先存了一个m文件。
仍以上面简单的问题为例
将子程序存为
function[train val test]=dividerand(A,n,m,p)
[train,val,test]=dividerand(A,0.8,0,0.2);

主程序:A=[1 2 3 4 5 6 7 8 9 10];
[train,val,test]=dividerand(A,0.8,0,0.2);
while [mean(train),std(train)]~=[mean(test),std(test)] ;
[train,val,test]=dividerand(A,0.8,0,0.2);     %重复子程序
end
实际运行是[mean(train),std(train)]~=[ean(test),std(test)]时,并没有重复子程序
Allhumanwisdomissummedupintwowords:waitandhope.
3楼2012-04-30 19:43:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

zjliu1265

至尊木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
yhyffrshuh: 金币+5, ★★★很有帮助 2012-04-30 19:25:07
xiegangmai: 金币+1, 谢谢应助! 2012-04-30 21:13:46
建议用while程序结构写程序:
epsv=1e-12;
A=[1 2 3 4 5 6 7 8 9 10];
while abs(mean(train)-mean(test))>epsv&abs(std(train)-std(test))>epsv;
    [train,val,test]=dividerand(A,0.8,0,0.2);
end
2楼2012-04-30 18:01:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zjliu1265

至尊木虫 (正式写手)

【答案】应助回帖


xiegangmai: 金币+1, 谢谢参与! 2012-04-30 21:14:13
??? Error using ==> minus
Matrix dimensions must agree.

你能把出错的语句显示下么?不然我们也不好判断啊
4楼2012-04-30 19:50:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yhyffrshuh

木虫 (正式写手)

流浪者一枚

引用回帖:
4楼: Originally posted by zjliu1265 at 2012-04-30 19:50:54:
??? Error using ==> minus
Matrix dimensions must agree.

你能把出错的语句显示下么?不然我们也不好判断啊

一、  你2楼给的程序出错提示就是
??? Error using ==> minus
Matrix dimensions must agree.
这个你可以自己将你给的2楼程序放在命令窗口运行试试

二、我的程序运行没有出错
但是运行结果  [mean(train),std(train)]~=[ean(test),std(test)]就终止了(我想要的结果是[mean(train),std(train)]=[ean(test),std(test)]),估计是while中的子程序并没有运行
那又为什么没有运行呢????
Allhumanwisdomissummedupintwowords:waitandhope.
5楼2012-04-30 20:05:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自然面上和省基金B类撒花 +15 花田半亩~白 2026-04-21 15/750 2026-04-23 00:09 by prepg
[考博] 华师大读博 +3 xq83 2026-04-22 5/250 2026-04-22 10:42 by xq83
[教师之家] 又一批高校组建人工智能学院 师资行吗 不是骗人吗 +5 yexuqing 2026-04-19 5/250 2026-04-22 10:01 by easeheart
[论文投稿] 急需审稿人!!! +3 陆小果画大饼 2026-04-21 3/150 2026-04-21 23:54 by jzy_123456
[考博] 申博/考博 +4 啃面包的小书虫 2026-04-17 8/400 2026-04-21 16:26 by 啃面包的小书虫
[考研] 295分求调剂 +6 ?要上岸? 2026-04-17 6/300 2026-04-21 08:18 by Equinoxhua
[考研] 085600材料与化工调剂 5+3 孜孜不倦2002 2026-04-19 6/300 2026-04-20 21:25 by babero
[论文投稿] 有没有接收比较快的sci期刊呀,最好在一个月之内的,研三孩子求毕业 20+4 之护着 2026-04-16 7/350 2026-04-20 15:45 by 豆豆7758
[考研] 337求调剂 +3 jyz04 2026-04-18 3/150 2026-04-20 12:24 by 研可安
[考博] 湖南大学刘巧玲课题组2026年第二批次博士研究生招生信息 +3 南风观火 2026-04-18 5/250 2026-04-20 10:13 by 南风观火
[考研] 求计算机方向调剂 +3 Toffee2 2026-04-16 6/300 2026-04-19 22:37 by ll叶
[考研] 294求调剂 +8 淡然654321 2026-04-17 9/450 2026-04-19 19:51 by Equinoxhua
[考研] 304求调剂 +8 castLight 2026-04-16 8/400 2026-04-19 17:14 by 中豫男
[考研] 求调剂 +10 小聂爱学习 2026-04-16 12/600 2026-04-19 16:51 by 中豫男
[考研] 求调剂 +6 苦命人。。。 2026-04-18 7/350 2026-04-19 16:27 by 中豫男
[考研] 接受任何调剂 +6 也就是栗子 2026-04-17 7/350 2026-04-18 17:20 by 涵竹刘
[考研] 收到复试调剂但是去不了 +8 小蜗牛* 2026-04-16 8/400 2026-04-18 11:15 by zixin2025
[考研] 260求调剂 +4 Zyt1314520.. 2026-04-17 5/250 2026-04-18 08:28 by babysonlkd
[有机交流] 二苯甲酮酸类衍生物 50+3 小白爱主人 2026-04-17 6/300 2026-04-17 18:47 by kf2781974
[考研] 322求调剂 +6 tekuzu 2026-04-17 6/300 2026-04-17 13:48 by Espannnnnol
信息提示
请填处理意见