[请益]选取会增质的变量作成阵列与循环问题

楼主: runkong (米塔克)   2017-05-21 22:26:47
小弟是matlab新手,
这几天遇到了两个循环和变量的问题实在搜不到类似的讨论,
因此想请教板上的各位大大。
这是一个模拟评选的模型
会有3~8个随机数量的参赛者
总评审数量是由2~17位随机出现,A就是他们的评分模式
其中会有总评审人数会有0~总评审人数的特殊评审,B就是他们的评分模式
原本的input是如下所示
B_1(1) = 1 ;
B_1(2:z_nub(n)) = randsample (ww_x,(z_nub(n)-1)) ;
B_2(1) = 1 ;
B_2(2:z_nub(n)) = randsample (ww_x,(z_nub(n)-1)) ;
B_3(1) = 1 ;
B_3(2:z_nub(n)) = randsample (ww_x,(z_nub(n)-1)) ;
A_4(1) = 1 ;
A_4(2:z_nub(n)) = randsample (ww_x,(z_nub(n)-1)) ;
A4(n)=randsample(first_place,1);
A_4(1)=A_4(A4(n)); A_4(A4(n)) = 1;
A_5(1) = 1 ;
A_5(2:z_nub(n)) = randsample (ww_x,(z_nub(n)-1)) ;
A5(n)=randsample(first_place,1);
A_5(1)=A_5(A5(n)); A_5(A5(n)) = 1;
第一个问题是每个评审分别都会对不同参赛者排序
假设来5位参赛者那就是评审会随机评1~5名
可能会有以下情况
B_1得到[1,2,5,3,4]
B_2得到[1,5,4,3,2]
B_3得到[1,4,5,3,2]
A_4得到[3,4,5,1,2]
A_5得到[4,3,2,5,1]
我希望他能够自行将 总评审数量由1跑到17,
并搭配特殊评审由0跑到该次的总评审数量做组合搭配
当B=3 A=5时,他能跑出上面那5个阵列,
想用循环但卡住写不出来,有人推荐我可能可以用二维阵列去写?
不知有没有什么语法可以推荐呢?
第二个问题是
每个评审分别都会对不同参赛者排序
假设来5位参赛者那就是评审会评1~5名
可能就会有以下情况
B_1得到[1,2,5,3,4]
B_2得到[1,5,4,3,2]
B_3得到[1,4,5,3,2]
A_4得到[3,4,5,1,2]
A_5得到[4,3,2,5,1]
最后每个人的排序加起来最低的就是胜者
会得到C=[1,2,5,3,4
1,5,4,3,2
1,4,5,3,2
3,4,5,1,2
4,3,2,5,1]
我会自己另外把他变成
D=[10,18,21,15,11]
第二个问题就在"A和B这两个不固定数量与长度的阵列叠加成一个矩阵"
也就是C这个步骤我办不到只能土法炼钢每个状态去更改,
刚刚查到似乎可以使用append去串接,
不过因为第一个问题所以没办法尝试
且每次名称都会由A1.A2.A3做变化因此无法使用A=1:17;
我有看到可以用eval依照他们增质的数量去定义,
不过自己尝试写了一下还是跑不出来.
目前也算是只用土法炼钢的方法在更改
麻烦各位帮忙了 两个问题解答一个的750P 以表感谢
作者: sunev (Veritas)   2017-05-21 23:53:00
程序增质?我看不出你举例中的A1A2有何差别所以你的A是变量不是程序对吧,把数个A叠成矩阵不行吗?程序是丢东西吐东西,变量是存东西,你的A看起来就是变量这样问好了A=[A1;A2] 成立吗?不太懂,程序不可能在等号左边,因为只有变量才能赋值我也不太懂你大小写的差异为何阵列也是变量,可用来存东西的东西都叫变量如果你觉得A2也是阵列,那A2和a2到底有何不同?
作者: YoursEver (猪是妳)   2017-05-22 23:50:00
建议: 重新编辑文章,把你每一步,每一次叠代所需要的input和输出的output全部列下来,否则很难看得懂你想说什么.

Links booklink

Contact Us: admin [ a t ] ucptt.com