我有一段代码,它显示了随机矩阵中的最小值和最大值,而不使用min/max命令:
m = rand(5,5)*10
mn = m(1);
mx = m(1);
for ii = 2:numel(m)
if m(ii) < mn
mn = m(ii);
imn = ii;
elseif m(ii) > mx
mx = m(ii);
imx = ii;
end
end
disp(mx)
disp(mn)
如何找到最小和最大坐标/位置?我只需要使用for或loop函数,我使用的是matlab版本2018a
你可以通过排序做到这一点:
function [minVal, maxVal, cMin, cMax] = q52961181(m)
if ~nargin, m = rand(5,5); end
sz = size(m);
[v,c] = sort(m(:), 'ascend');
% at this point, the *linear* indices of the minimum and the maximum are c(1) and c(end),
% respectively.
[x,y] = ind2sub(sz, c([1,end]));
assert(isequal(numel(x), numel(y), 2)); % make sure we don't have repetitions
minVal = v(1); maxVal = v(2);
cMin = [x(1), y(1)];
cMax = [x(2), y(2)];
或者使用查找
:
function [minVal, maxVal, cMin, cMax] = q52961181(m)
if ~nargin, m = rand(5,5); end
[minVal,maxVal] = bounds(m,'all'); % "bounds" was introduced in R2017a
[cMin, cMax] = deal(zeros(1,2));
[cMin(1), cMin(2)] = find(m == minVal);
[cMax(1), cMax(2)] = find(m == maxVal);
(这个解决方案从技术上讲是作弊,因为bounds
在内部调用min
和max
。但是,您可以使用自己的代码来确定最小值和最大值。)
A = rand(5,5);
B = A(:);
[B,I] = sort(B);
m_min = B(1);
m_max = B(end);
index_min = I(1);
index_max = I(end);
我修改了代码以显示极值的索引。可以使用ind2subs
coord_max = ind2subs([5,5], index_max);
coord_min = ind2subs([5,5], index_min);
假设我在java中有一个主类,它接收一个矩阵[][],比如: ` '然后用户输入输入: 我知道这是一个5x5的矩阵,但只是因为我看到了用户输入的内容,我如何获得矩阵的大小- 我什么也没试过,我是Java初学者,所以请耐心等待。
这个问题可能是封闭的,因为它听起来很模糊,但我真的问这个,因为我不知道或者我的数学背景不够。 我试图实现一个挑战,其中一部分挑战要求我计算矩阵的最小值和最大值。我对矩阵的实现及其操作没有任何问题,但是什么是矩阵的最小值和最大值?考虑到3x3矩阵是9个数中最小的数,最大的是最大的还是其他什么?
我正在寻找一个有效的解决方案,从矩阵中选择不重叠的值,而不考虑成本的最小化。匈牙利算法通过选择一个代价最小的组合来解决指派问题。然而,我想要一个最大值的最小化。 匈牙利人会选择 总成本=1+2+5=8 但是,最大值为5。 我希望将组合选择为 所以我想要的输出是:4,3,2 而不是成本最小化。我想选择一个最小最大数量的组合。
我实现了c程序,可以找到矩阵的元素:行的最大元素,同时列的最小元素,或行的-min元素,同时列的最大元素。例如,我们有数据。包含以下内容的txt文件: 4 7 8 9 10 6 5 4 11 5 0 1 12 4 2 7 13- 其中4是n-矩阵大小(4x4),7和10是这些数字。 下面是代码: 问题:我想知道我的代码是不是“脏”代码?因为我总是渴望让一切变得如此困难,只要有可能让它变得容易。是否
本文向大家介绍用C ++查找带排序行的矩阵的Kth最小和,包括了用C ++查找带排序行的矩阵的Kth最小和的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个m * n矩阵,称为mat,一个整数k,mat的行以非降序排列。我们可以从每一行中精确选择一个元素来形成一个数组。我们必须在所有可能的数组中找到第K个最小的数组和。 因此,如果输入像mat = [[1,3,11],[2,4,6]] 3 2
给定一个2维正整数数组,求和最大的HxW子矩形。矩形的总和是该矩形中所有元素的总和。 输入:具有正元素的二维数组NxN子矩形的HxW大小 输出:HxW大小的子矩阵,其元素的总和最大。 我已经使用蛮力方法解决了这个问题,但是,我现在正在寻找一个具有更好复杂性的更好的解决方案(我的蛮力法的复杂性是O(n6))。