请问matlab如何找到一个二维数组中,第一列和第二列相同的,但第三列数值最大的那组数或者第四列数?

 我来答
兔子和小强
2015-03-23 · TA获得超过6945个赞
知道大有可为答主
回答量:3332
采纳率:74%
帮助的人:1372万
展开全部
%% 数据a定义在这里
[tmp, I, J] = unique(a(:,[1 2]), 'rows');
l = zeros(length(I), 1);
for i = 1:length(I)
    [tmp, t] = max(a(J==i, 3));
    l(i) = find(cumsum(J==i) == t, 1, 'first');
end
l
a(l,:)

如果你用MATLAB R2009b以上版本,上述代码中的tmp都可改成符号‘~’。

双刀剁馅儿
2016-01-14 · 超过21用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:50.1万
展开全部
假设A是你的二维数组,下面的代码能输出你要的那一行

rows=size(A,1);
cmax=min(A(:,3));
for i=1:1:rows
if A(i,1)==A(i,2)
if A(i,3)>=cmax
cmax=A(i,3);
k=i;
end
end
end
A(k,:)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式