finde some maximum values of matrix without collision!!!!
3 次查看(过去 30 天)
显示 更早的评论
hi, i have 4*6 random matrix and i want to select a maximum value of each rows, but the problem is, before selecting the max value of each rows it looks to orginal index of previous row’s maximum value!!! and if it’s in the same place it go for 2nd maximum value and select it. and do this 4 time.
0 个评论
回答(2 个)
Rik
2018-10-2
I suspect there is a better way with the sort function, but I can't come up with now. This should work.
data=rand(4,6);
maxlist=zeros(size(data,1),1);
temp_data=data;
for n=1:numel(maxlist)
current_row_max=max(temp_data(n,:));
temp_data(ismembertol(temp_data,current_row_max))=NaN;
maxlist(n)=current_row_max;
end
2 个评论
Bruno Luong
2018-10-3
A = ceil(5*rand(4,6))
B = A;
m = size(B,1);
c = zeros(m,1);
maxA = zeros(m,1);
r = (1:m)';
for i=1:m
[maxA(i),c(i)] = max(B(i,:));
if (i < m)
B(i+1,c(i)) = -Inf;
end
end
% 3-column array: row column and value
[r,c,maxA]
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!