这个其实很简单,我给你举个例子,因为不清楚你实际上要具体干什么: a=round(10*rand(1,1)+1) switch a case 1 disp('x1') case 2,3 disp('x2') case 4,5,6 disp('x3') otherwise disp('x4') end 原理,随机生成1到10之间的数,每一个数字生成的概率都是10% OK,如果有2个呢?20% 实际运行就可以看出,第四个X4出现概率最高,他概率高嘛。呵呵PS :暂时我也没有好办法,但是临时方案还是有的,12.87%=1287/10000,明白我的意思么?这个时候使用for循环,不使用switch ...