声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2977|回复: 5

[综合讨论] 请问如何选取矩阵中指定的元素??新手急问

[复制链接]
发表于 2010-4-30 23:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
如a=[123 23 13 45 21 56 23 90 29];
   b=[1 4 5 9];
注:b的第一个数为1,最后一个数总是为a的长度,中间值若干,现在的目的是使b不存在相邻数,如果存在相邻数,刚返回查找 a中的数,选取对应值小的数。
如b存在4,5相邻,则返回查找a,发现a(4)>a(5),,则将4去掉,此时b为[1 5 9];

求大虾帮忙~!非常感谢

b中的数都是a中元素的下标(提取的一些数),所以我才说,(b的第一个数为1,最后一个数总是为a的长度,中间值若干,)可能有点说的不太清楚,因为我想要的那些数不能是相邻的,所以要去除掉相邻点

[ 本帖最后由 fishfly911 于 2010-5-1 08:46 编辑 ]
回复
分享到:

使用道具 举报

发表于 2010-5-1 00:43 | 显示全部楼层
个人水平专业有限, 总觉的楼主说不够清楚些!?
逻辑都有了, LZ应可先试试看
发表于 2010-5-1 09:34 | 显示全部楼层
for i=2:length(b)
   if a(b(i))<a(b(i-1))
      b(i-1)=[];
  end
end
不过你没有说如果前面的小于后面的怎么办
发表于 2010-5-1 19:02 | 显示全部楼层
a=[123 23 13 45 21 56 23 90 29];
b=[1 4 5 length(a)];for i=2:length(b)-2
if abs(b(i)-b(i+1))==1&a(b(i))>a(b(i+1))
b(i)=[];
end
b
end
 楼主| 发表于 2010-5-5 15:36 | 显示全部楼层
谢谢大家的解答,问题已解决~
发表于 2010-5-5 21:48 | 显示全部楼层

回复 5楼 fishfly911 的帖子

建议与大家分享你的成果, 做个结束!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-29 15:49 , Processed in 0.067617 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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