怎么用matlab生成随机数,排序,取数排序前的位置?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用matlab生成随机数,排序,取数排序前的位置?相关的知识,希望对你有一定的参考价值。

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
参考技术A 楼主你好!
产生一组平均分布(产生了1440个):
r=unifrnd(0,1:1440)
产生一组正态分布:(其中,取mu=720,sigema=240)
r=normrnd(720,240,[1,6])(其中,方括号的6代表了生成6个,您需要多少个,就改成多少个好啦)
上面都是我刚调试过的,如果还有问题请联系我哈~
希望您满意
补充:
楼主,我根据您的要求重新写了一下程序,
a=rand(1)
if(a<0.2&a>0)
r=(normrnd(540,5))
end
if(a>=0.2&a<0.4)
r=(normrnd(780,5))
end
if(a>=0.4)
r=(normrnd(1200,5))
end
x=int32(r)
x就是所需的结果,a是用于您指定的出现概率的。
里面并没有涉及您的取值范围。这是因为在6*方差的范围内,正态分布的取值基本已经可以涵盖全部的取值了(99.8%的样子吧)
所以基本没可能出在这个规定范围之外。
希望您满意~

abap 取数排序之后怎么取第一行

用索引读取 单行
要用索引从 内表中读取 单行,请使 用 READ 语句,用法 如下:
语法
READ TABLE <itab> [INTO <wa>] INDEX <idx>.
用 INTO 选项指定目 标区域 <wa>。 如果表格有 表头行,可 以忽略 INTO 选项。这样 ,表格工作 区域就成了 目标区域。
系统用索引 <idx> 从表格 <itab> 中读取行。 这比用关键 字访问表格 要快(参见 读取有关键字的单行 )。
如果找到有 指定索引的 条目,则将 系统字段 SY-SUBRC 设置为0, 而且 SY-TABIX 包含该行的 索引。否则 ,SY-SUBRC 包含非0值 。
如果 <idx> 小于或等于 0,则会发 生实时错误 。如果 <idx> 超过表格大 小,系统将 SY-SUBRC 中的返回代 码值设置为 4。
DATA: BEGIN OF ITAB OCCURS 10,
COL1 TYPE I,
COL2 TYPE I,
END OF ITAB.
DO 20 TIMES.
ITAB-COL1 = SY-INDEX.
ITAB-COL2 = 2 * SY-INDEX.
APPEND ITAB.
ENDDO.
READ TABLE ITAB INDEX 7.
WRITE: SY-SUBRC, SY-TABIX.
WRITE: / ITAB-COL1, ITAB-COL2.
其输出为:
0 7
7 14
在此创建有 表头行的内 表 ITAB, 并用20行 对其进行填 充。读取并 输出索引为 7的行。
参考技术A READ INT_TAB INTO WA_TAB INDEX 1. 参考技术B 黄石美瞳仓库,阿坝美瞳批发,大同美瞳代发哪家不错

以上是关于怎么用matlab生成随机数,排序,取数排序前的位置?的主要内容,如果未能解决你的问题,请参考以下文章

js 随机按机率取数

abap 取数排序之后怎么取第一行

python 不用random模块怎么随机取数

请问,怎么用matlab生成一个随机对称的矩阵

java map 排序 取数

随机产生一组数组 按从大到小排列用JAVA怎么做