小弟是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 以表感谢