24小时热门版块排行榜    

查看: 2602  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

我是柱哥啊

金虫 (正式写手)

[求助] 如何按照矩阵的某一行进行随机排列 已有2人参与

1、给定矩阵,如何随机排列第一行,并且矩阵的每一列对应不变?换句话就是,对矩阵进行随机重排列序,
2、给定矩阵每一行的意义,例如:第一行是工件号,第二行是对应工件的加工时间,第三行是对应工件的尺寸。
针对第一行进行遗传算子的一系列操作,在这个过程中,需要用加工时间与尺寸进行计算。
如何抽出矩阵的第一行进行其他的操作?操作结果形成新的工件号排序,并且工件对应的属性不变。
回复此楼
JustDoIt!
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 谢谢参与 2014-04-27 08:19:48
你只需要将排序后的第一行作为列号指定即可
试试下面的代码,可能更好理解一些
CODE:
a = [rand(1,5);randi(10,1,5);randi(100,1,5)]
b = a(:,randperm(length(a(1,:)),length(a(1,:))))

1.随机排列第一行用randperm(n,n),其中n==第一行的长度,这样不管矩阵维数是多少,生成的结果都不会出问题

2.跟第一个问题一样,第一行是a(1,,操作完后将这个作为列号指定抽取组成新矩阵就行.
例如下面的代码,a = [1,2,3;4,5,6]; b是a的第一行重新排[3,1,2],c是重排后对应的新矩阵
CODE:
>> a = [1:3;4:6]

a =

     1     2     3
     4     5     6

>> b = [3,1,2]

b =

     3     1     2

>> c = a(:,b)

c =

     3     1     2
     6     4     5

» 本帖已获得的红花(最新10朵)

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2014-04-24 23:23:35
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

asmeng

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
我是柱哥啊: 金币+20, ★★★很有帮助 2014-04-25 11:44:02
1. 第一个问题是不是对矩阵根据第一行进行随机排列?
实际上是各列进行洗牌。用Matlab来做的话,可以用randperm函数。比如,x是三行4列的矩阵,然后按列洗牌:
x=[1,2,3,4;1,2,3,4;1,2,3,4]
ind = randperm(4) %随机排列1到4
y=x(:,ind)%按照ind排列矩阵的各列

2. 第二个问题是不是先取出第一行进行操作,取出矩阵第一行的命令是:x1=x(1,,然后对x1进行运算,生成一个新的序号?(类似于1问中有一个新的ind),然后排列矩阵x吗?

» 本帖已获得的红花(最新10朵)

2楼2014-04-24 22:21:50
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

我是柱哥啊

金虫 (正式写手)

送红花一朵
引用回帖:
2楼: Originally posted by asmeng at 2014-04-24 22:21:50
1. 第一个问题是不是对矩阵根据第一行进行随机排列?
实际上是各列进行洗牌。用Matlab来做的话,可以用randperm函数。比如,x是三行4列的矩阵,然后按列洗牌:
x=
ind = randperm(4) %随机排列1到4
y=x(:,ind)% ...

第二个问题就是你说的这样子,跟第一个类似,这是在编码中遇到的坎,其实我想再仔细描述下,但是那就又牵扯到遗传算法了,只好这样子
JustDoIt!
4楼2014-04-25 11:05:41
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

我是柱哥啊

金虫 (正式写手)

引用回帖:
2楼: Originally posted by asmeng at 2014-04-24 22:21:50
1. 第一个问题是不是对矩阵根据第一行进行随机排列?
实际上是各列进行洗牌。用Matlab来做的话,可以用randperm函数。比如,x是三行4列的矩阵,然后按列洗牌:
x=
ind = randperm(4) %随机排列1到4
y=x(:,ind)% ...

抽出第一行,是作为序列号来用的,因为最终是根据第二行第三行的值来计算目标,最终根据目标来重新排列序列号。
遗传算法过程,我的是对序列号进行重组交叉等一些列操作,也就是说操作对象是序列号,但是计算目标的时候是根据序列号对应的第二行第三行来得,所以怎么才能保证每个号码对应的二三行值不会混乱?
JustDoIt!
5楼2014-04-25 11:14:15
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 岩土工程学报什么时候才能终审完呐 25+3 yeager111 2026-08-10 4/200 2026-08-16 20:42 by tfang
[基金申请] 时间戳又变了8-15 +13 archvillain 2026-08-15 25/1250 2026-08-16 20:13 by zhaosm1982
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 6/300 2026-08-16 20:07 by 奶牛小黑
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +11 家与远方 2026-08-10 16/800 2026-08-16 10:28 by ray43
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +10 majunge000 2026-08-11 12/600 2026-08-16 08:18 by xli1984
[精细化工] 招聘 金属平磨液,抛光液研发工程师 +3 小天0311 2026-08-14 3/150 2026-08-16 07:31 by H9PLUS
[基金申请] filecode=后面第一个是大写字母 +6 wangze12014 2026-08-14 7/350 2026-08-15 20:12 by gltch
[基金申请] 关于Filecode分析方法 +10 majunge000 2026-08-10 13/650 2026-08-15 12:26 by hanpeng972
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[基金申请] 奇怪,两个人的filecode固定段从头到尾一模一样 +8 布布和一二 2026-08-10 11/550 2026-08-14 14:58 by Equinoxhua
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] FileCode能看出啥? +10 要乐观耀哥 2026-08-10 32/1600 2026-08-14 09:37 by 要乐观耀哥
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 为什么网上很多人说本周 12号出结果 +6 瞬息宇宙 2026-08-10 7/350 2026-08-11 19:25 by Tide man
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
信息提示
请填处理意见