怎么用matlab生成随机数,排序,取数排序前的位置?
答案:1 悬赏:20 手机版
解决时间 2021-03-27 22:46
- 提问者网友:抽煙菂渘情少年
- 2021-03-27 16:33
怎么用matlab生成随机数,排序,取数排序前的位置?
最佳答案
- 五星知识达人网友:像个废品
- 2021-03-27 16:54
clear
Num=input('please input Num=');
M=input('please input M=');
N=input('please input N=');
%我也不知道你的Num,M,N是什么,你自己输入吧!
A=5*rand(1,Num);%产生Num个随机数
[B,Ix]=sort(A,'descend');
%对产生的随机数按由大到小的顺序排序,并取随机数在排序前的位置Ix
x=floor(Ix./N);%将排序前的位置除以N 所得商作为横坐标x
y=rem(Ix,N);%所得余数作为纵坐标y
I=Ix(1:M);%取排序后前M个随机数在排序前的位置
X=x(1:M);
Y=y(1:M);
%I,X,Y为你所求!
%以下是你复制所有上面代码后运行举例!
please input Num=10
please input M=5
please input N=4
>> I
I =
9 6 1 7 8
>> X
X =
2 1 0 1 2
>> Y
Y =
1 2 1 3 0
Num=input('please input Num=');
M=input('please input M=');
N=input('please input N=');
%我也不知道你的Num,M,N是什么,你自己输入吧!
A=5*rand(1,Num);%产生Num个随机数
[B,Ix]=sort(A,'descend');
%对产生的随机数按由大到小的顺序排序,并取随机数在排序前的位置Ix
x=floor(Ix./N);%将排序前的位置除以N 所得商作为横坐标x
y=rem(Ix,N);%所得余数作为纵坐标y
I=Ix(1:M);%取排序后前M个随机数在排序前的位置
X=x(1:M);
Y=y(1:M);
%I,X,Y为你所求!
%以下是你复制所有上面代码后运行举例!
please input Num=10
please input M=5
please input N=4
>> I
I =
9 6 1 7 8
>> X
X =
2 1 0 1 2
>> Y
Y =
1 2 1 3 0
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯