数组操作……一个更好的方法吗?

1视图(30天)
Damo Nair
Damo Nair 2013年1月23日
你好,
我有一个二维数组与三列是这样……
1 4 9
5 10 60
1 61 92
5 93 157
1 158 229
5 230 274
如果第一列中的值是1,那么我必须找到最小值从一个新的数组p,最小(p(9)) &如果其5,马克斯,马克斯(p(10:60))的价值范围中列出列2 & 3。上校1中的值只值1或5。
现在,我这样做在一个循环回路像…
如果州(我,1)= = 1;问(我)=最小(p(状态(我,2):(我,3)));
如果州(我,1)= = 5;问(我)= max (p(状态(我,2):(我,3)));
没有更好的方法?
谢谢
孩子的呼唤。
1评论
沃尔特·罗伯森
沃尔特·罗伯森 2013年1月23日
注意:请只缩进代码,而不是你的文本描述。我编辑了清晰度。

登录置评。

接受的答案

莎拉等Zaranek
莎拉等Zaranek 2013年1月25日
你可以用逻辑索引(而不是一个循环)
q = 0(长度(p (: 1)), 1);
找到第一列= 1。
idx1 = p (: 1) = = 1;
找到下一个的分两列,第一列= 1
q (idx1) =最小(p (idx1, 2:3), [], 2);
找到第一列= 5
idx2 = p (: 1) = = 5;
找到第二两列,第一列的最小值= 5
问(idx2) = max (p (idx2 2:3), [], 2);
2的评论
Damo Nair
Damo Nair 2013年1月26日
谢谢你,莎拉。
你的方法确实工作!我可以参考第二个数组与指数。不知道为什么这些事情有时躲避我:)
有一个美好的一天。
孩子的呼唤。

登录置评。

更多的答案(0)

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!