找回密码
 注册
Simdroid-非首页
查看: 129|回复: 6

如何按要求对数组排序

[复制链接]
发表于 2009-5-12 21:57:42 | 显示全部楼层 |阅读模式 来自 辽宁沈阳
本帖最后由 ljelly 于 2009-5-13 09:51 编辑

问题的确描述的不是太清楚,我再说一下
有一个数组
idx=[2,9,15,1,16,6,7,13,3,10,5,14,11,8,12, 4]
我已经求出了它所对应变量的函数值
F=[f(x_2),f(x_9),f(x_15),f(x_1),f(x_16),f(x_6),f(x_7),...,f(x_4)]
想重新排一下序
排列成
F=[f(x_1),f(x_2),f(x_3),f(x_4),..,f(x_16)].

谢谢!!!

评分

1

查看全部评分

发表于 2009-5-12 22:28:12 | 显示全部楼层 来自 重庆
Simdroid开发平台
idx的顺序 ?
什么意思啊?

具体说个出来
回复 不支持

使用道具 举报

发表于 2009-5-13 05:19:44 | 显示全部楼层 来自 辽宁大连
呵呵,猜测一下,我估计是要将数组idx的每一个元素的数值赋值给数组g的元素吧,要是这样那就可以:

  1. for i=1:16
  2.     g(i)=idx(i);
  3. end
复制代码
或者直接用
g=idx;
毕竟matlab是向量语言嘛,呵呵。
回复 不支持

使用道具 举报

 楼主| 发表于 2009-5-13 08:10:09 | 显示全部楼层 来自 辽宁沈阳
已经对问题重新进行了描述,期待高手相助。
同时感谢楼上二位的指导!
谢谢!!
回复 不支持

使用道具 举报

发表于 2009-5-13 11:57:17 | 显示全部楼层 来自 浙江杭州
试试下面这段代码,不知道是否符合你的要求


  1. clc;

  2. clear all;

  3. idx=[2 9 15 1 16 6 7 13 3 10 5 14 11 8 12 4];

  4. F=[2.1 9.1 15.1 1.1 16.1 6.1 7.1 13.1 3.1 10.1 5.1 14.1 11.1 8.1 12.1 4.1];

  5. FF=sort([idx' F']);

  6. F=FF(:,2)

复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

 楼主| 发表于 2009-5-13 14:33:23 | 显示全部楼层 来自 辽宁沈阳
谢谢版主指导!!!
回复 不支持

使用道具 举报

发表于 2009-5-13 15:55:36 | 显示全部楼层 来自 黑龙江哈尔滨
1# star19831106

已知idx和F后,LZ可能要的是

  1. [B, IX]=sort(idx);
  2. F=F(IX);
复制代码

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-7 11:28 , Processed in 0.065361 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表