matlab中如何使一个数组变成一样长度不一样数字的数组比方说我有个数组为a=[1 2 3],现在要将他们所有都变成从1到3的一个随机数,但是不能与原数相同,比方说a(1)不能等于1,a(2)不能等于2,a(3)不

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 09:19:35

matlab中如何使一个数组变成一样长度不一样数字的数组
比方说我有个数组为a=[1 2 3],现在要将他们所有都变成从1到3的一个随机数,但是不能与原数相同,比方说a(1)不能等于1,a(2)不能等于2,a(3)不能等于3

如果数组长度不大,可采用循环的方式,每次用 randperm 产生随机排列,然后判断是否与原数相同,直到满足要求为止.
 
参考代码:
a = [1 2 3];
n = length(a);
while true
    p = randperm(n);
    if all(p-(1:n)), break, end
end
b = a(p)
从直觉上判断,如果数组元素比较多,这种方式的效率可能会比较低,需要研究更好的做法.不过从实际的测试看,效率似乎并没有受很大影响.你可以试试看,如果确实需要改进再说.

matlab中如何使一个数组变成一样长度不一样数字的数组比方说我有个数组为a=[1 2 3],现在要将他们所有都变成从1到3的一个随机数,但是不能与原数相同,比方说a(1)不能等于1,a(2)不能等于2,a(3)不 matlab 如何把一个矩阵中不同的元素组成一个新数组? 在matlab 中如何判断一个数是否属于一个数组我在编一个程序,要求数组中每一个元素的值都不相同 matlab问题 如何删除数组中相邻两个相同的数只保留一个举例 A=【1 2 2 2 4 5 6 6 7】 变成A=【1 2 4 5 6 7】 并且只用loop matLAB如何表示二维数组中得一列数? Matlab中怎么返回一个数组中元素的个数 matlab中定义了pointx=zeros(NG,1)这样一个数组,如何将这条语句写成fortran语言中? 在cshell 中如何给一个数组追加元素?或者说c shell 中咋样定义一个动态长度的数组?最好能举一个简单的例子 C 如何定义一个未知长度的数组 C 如何定义一个未知长度的数组 matlab 怎样定义一个数组,它的每个元素是一个向量,且向量长度不等? 在C语言中,如何定义长度不确定的数组 matlab多个长度为3的数组,个数不确定,怎么从每一个数组中取一个数字,得到全排列假如有3个数组,分别为a b c.其全排列用matlab可以计算出,方法为[a b c]=ndgrid(a,b,c)[a(:) b(:) c(:)]我的数组个数是不 matlab中cat获取高维数组,怎样循环表示每一个数组的行列 在matlab中,如何将一个一维数组分成两个一维数组在matlab中,如何将一个一维数组X(3000个数)分成两个一维数组A和B.要求第1~100个数属于A,第101~200个数属于B,201~300属于A,301~400属于B,以此类推.我 设x为一个长度为n的数组,用matlab编程求均值和标准差 MATLAB中怎么把一个变成整数 在matlab语言中,如何将两个数组内的数据重新组成一个数组,且在新的数组中,两原数组的元素间隔出现.如a=[1 2 3],b=[a b c],新的 数组c=[1 a 2 b 3 c]