24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2134  |  回复: 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的回帖

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

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

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

rocmanz

新虫 (初入文坛)


xiegangmai: 金币+1, 鼓励讨论交流! 2013-07-25 22:03:33
引用回帖:
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

2楼的判断条件如果发生一个<就跳出循环了吧?不能是与,得是或吧。
btw:我的matlab太古老,没有楼主的dividerand程序。不知道是不是判断有问题。
6楼2013-07-25 13:45:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

风随尘动

新虫 (小有名气)

我也遇到相似问题了,楼主怎么解决的呢

发自小木虫Android客户端
7楼2018-11-27 14:38:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yhyffrshuh 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 08600生物与医药-327 +10 18755400796 2026-04-05 10/500 2026-04-10 08:14 by kangsm
[考研] 293调剂 +23 yj1221 2026-04-08 24/1200 2026-04-09 23:26 by may_新宇
[考研] 计算机11408,286分求调剂 +9 木子念晞 2026-04-05 9/450 2026-04-09 20:04 by vgtyfty
[考研] 284求调剂 +8 让我上岸吧阿西 2026-04-09 10/500 2026-04-09 18:34 by 段伟艳
[考研] 本科郑州大学,一志愿华东师范大学282求调剂 +23 熊哥xtk 2026-04-07 26/1300 2026-04-09 17:17 by 18446523
[考研] 一志愿鲁东大学071000生物学学硕初试分数276求调剂 +19 慕绝cc 2026-04-09 23/1150 2026-04-09 17:14 by 段伟艳
[考研] 322求调剂,08工科 +3 今天是个小号 2026-04-08 3/150 2026-04-09 15:53 by wp06
[考研] 085801 总分275 本科新能源 求调剂 +8 bradoner 2026-04-08 9/450 2026-04-09 13:43 by only周
[考研] 26考研调剂0710 0860 +10 补补不补 2026-04-03 15/750 2026-04-09 11:13 by ditto77778
[考研] 264求调剂 +11 麦小叮当 2026-04-07 11/550 2026-04-08 16:05 by 一只好果子?
[考研] 材料专硕(0856) 339分求调剂 +16 哈哈哈鹅哈哈哈 2026-04-05 16/800 2026-04-08 16:02 by luoyongfeng
[考研] 专硕085403,291分,有两篇专利,一国一奖 +3 哈吉咪哈吉咪 2026-04-07 3/150 2026-04-07 18:21 by 蓝云思雨
[考研] 286求调剂 +20 Faune 2026-04-06 20/1000 2026-04-07 11:33 by 诗与自由
[硕博家园] 0856材料化工求调剂,一志愿211,初试成绩349 +4 江淮北月 2026-04-05 4/200 2026-04-06 22:44 by chenzhimin
[考研] 081200-11408-276学硕求调剂 +5 崔wj 2026-04-05 5/250 2026-04-06 15:40 by lin-da
[考研] 一志愿河北工业大学材料工程,初试344求专硕调剂 +6 15933906766 2026-04-05 6/300 2026-04-06 13:21 by 无际的草原
[考研] 0817化学工程与技术求调剂,一志愿中海洋319 +14 lv945 2026-04-04 14/700 2026-04-06 10:20 by 蓝云思雨
[考研] 能动调剂326专硕 +4 wan112233 2026-04-04 4/200 2026-04-04 22:47 by yu221
[考研] 考研调剂 +5 四川王涛 2026-04-04 5/250 2026-04-04 22:18 by 啵啵啵0119
[考研] 085400电子信息319求调剂(接受跨专业调剂) +5 星星不眨眼喽 2026-04-03 6/300 2026-04-04 21:50 by hemengdong
信息提示
请填处理意见