Как найти минимальное значение строки в матрице

Given a matrix, the task is to find the minimum element of each row and each column.

Examples: 

Input: [1, 2, 3]
        [1, 4, 9]
        [76, 34, 21]
Output: Minimum element of each row is {1, 1, 21}
Minimum element of each column is {1, 2, 3}

Input: [1, 2, 3, 21]
       [12, 1, 65, 9]
       [11, 56, 34, 2]
Output: Minimum element of each row is {1, 1, 2}
Minimum element of each column is {1, 2, 3 , 2}

Approach: The idea is to run the loop for no_of_rows. Check each element inside the row and find for the minimum element. Finally, print the element. Similarly, check each element inside the column and find for the minimum element. Finally, print the element.

Below is the implementation of the above approach:

C++

#include<bits/stdc++.h>

using namespace std;

const int MAX = 100;

void smallestInRow(int mat[][MAX], int n, int m)

{

    cout << " { ";

    for (int i = 0; i < n; i++) {

        int minm = mat[i][0];

        for (int j = 1; j < m; j++) {

            if (mat[i][j] < minm)

                minm = mat[i][j];

        }

        cout << minm << ", ";

    }

    cout << "}";

}

void smallestInCol(int mat[][MAX], int n, int m)

{

    cout << " { ";

    for (int i = 0; i < m; i++) {

        int minm = mat[0][i];

        for (int j = 1; j < n; j++) {

            if (mat[j][i] < minm)

                minm = mat[j][i];

        }

        cout << minm << ", ";

    }

    cout << "}";

}

int main()

{

    int n = 3, m = 3;

    int mat[][MAX] = { { 2, 1, 7 },

                       { 3, 7, 2 },

                       { 5, 4, 9 } };

    cout << "Minimum element of each row is ";

    smallestInRow(mat, n, m);

    cout << "nMinimum element of each column is ";

    smallestInCol(mat, n, m);

    return 0;

}

C

#include <stdio.h>

#define MAX 100

void smallestInRow(int mat[][MAX], int n, int m)

{

  printf(" { ");

  for (int i = 0; i < n; i++) {

    int minm = mat[i][0];

    for (int j = 1; j < m; j++) {

      if (mat[i][j] < minm)

        minm = mat[i][j];

    }

    printf("%d, ",minm);

  }

  printf("}");

}

void smallestInCol(int mat[][MAX], int n, int m)

{

  printf(" { ");

  for (int i = 0; i < m; i++) {

    int minm = mat[0][i];

    for (int j = 1; j < n; j++) {

      if (mat[j][i] < minm)

        minm = mat[j][i];

    }

    printf("%d, ",minm);

  }

  printf("}");

}

int main()

{

  int n = 3, m = 3;

  int mat[][MAX] = { { 2, 1, 7 },

                    { 3, 7, 2 },

                    { 5, 4, 9 } };

  printf("Minimum element of each row is ");

  smallestInRow(mat, n, m);

  printf("nMinimum element of each column is ");

  smallestInCol(mat, n, m);

  return 0;

}

Java

public class GFG {

    final static int MAX = 100;

    static void smallestInRow(int mat[][], int n, int m) {

        System.out.print(" { ");

        for (int i = 0; i < n; i++) {

            int minm = mat[i][0];

            for (int j = 1; j < m; j++) {

                if (mat[i][j] < minm) {

                    minm = mat[i][j];

                }

            }

            System.out.print(minm + ", ");

        }

        System.out.println("}");

    }

    static void smallestInCol(int mat[][], int n, int m) {

        System.out.print(" { ");

        for (int i = 0; i < m; i++) {

            int minm = mat[0][i];

            for (int j = 1; j < n; j++) {

                if (mat[j][i] < minm) {

                    minm = mat[j][i];

                }

            }

            System.out.print(minm + ", ");

        }

        System.out.print("}");

    }

    public static void main(String args[]) {

        int n = 3, m = 3;

        int mat[][] = {{2, 1, 7},

        {3, 7, 2},

        {5, 4, 9}};

        System.out.print("Minimum element of each row is ");

        smallestInRow(mat, n, m);

        System.out.print("nMinimum element of each column is ");

        smallestInCol(mat, n, m);

    }

}

Python3

MAX = 100

def smallestInRow(mat, n, m):

    print("{", end = "")

    for i in range(n):

        minm = mat[i][0]

        for j in range(1, m, 1):

            if (mat[i][j] < minm):

                minm = mat[i][j]

        print(minm, end = ",")

    print("}")

def smallestInCol(mat, n, m):

    print("{", end = "")

    for i in range(m):

        minm = mat[0][i]

        for j in range(1, n, 1):

            if (mat[j][i] < minm):

                minm = mat[j][i]

        print(minm, end = ",")

    print("}")

if __name__ == '__main__':

    n = 3

    m = 3

    mat = [[2, 1, 7],

           [3, 7, 2 ],

           [ 5, 4, 9 ]];

    print("Minimum element of each row is",

                                 end = " ")

    smallestInRow(mat, n, m)

    print("Minimum element of each column is",

                                    end = " ")

    smallestInCol(mat, n, m)

C#

using System;

class GFG

{

readonly static int MAX = 100;

static void smallestInRow(int [,]mat,

                          int n, int m)

{

    Console.Write(" { ");

    for (int i = 0; i < n; i++)

    {

        int minm = mat[i, 0];

        for (int j = 1; j < m; j++)

        {

            if (mat[i, j] < minm)

            {

                minm = mat[i, j];

            }

        }

        Console.Write(minm + ", ");

    }

    Console.WriteLine("}");

}

static void smallestInCol(int [,]mat,

                          int n, int m)

{

    Console.Write(" { ");

    for (int i = 0; i < m; i++)

    {

        int minm = mat[0, i];

        for (int j = 1; j < n; j++)

        {

            if (mat[j, i] < minm)

            {

                minm = mat[j, i];

            }

        }

        Console.Write(minm + ", ");

    }

    Console.Write("}");

}

public static void Main()

{

    int n = 3, m = 3;

    int [,]mat = {{2, 1, 7},

                   {3, 7, 2},

                  {5, 4, 9}};

    Console.Write("Minimum element of " +

                         "each row is ");

    smallestInRow(mat, n, m);

    Console.Write("nMinimum element of " +

                        "each column is ");

    smallestInCol(mat, n, m);

}

}

PHP

<?php

$MAX = 100;

function smallestInRow(&$mat, $n, $m)

{

    echo " { ";

    for ($i = 0; $i < $n; $i++)

    {

        $minm = $mat[$i][0];

        for ($j = 1; $j < $m; $j++)

        {

            if ($mat[$i][$j] < $minm)

                $minm = $mat[$i][$j];

        }

        echo $minm . ", ";

    }

    echo "}";

}

function smallestInCol(&$mat, $n, $m)

{

    echo " { ";

    for ($i = 0; $i < $m; $i++)

    {

        $minm = $mat[0][$i];

        for ($j = 1; $j < $n; $j++)

        {

            if ($mat[$j][$i] < $minm)

                $minm = $mat[$j][$i];

        }

        echo $minm . ", ";

    }

    echo "}";

}

$n = 3;

$m = 3;

$mat = array(array( 2, 1, 7 ),

             array( 3, 7, 2 ),

             array( 5, 4, 9 ));

echo "Minimum element of each row is ";

smallestInRow($mat, $n, $m);

echo "nMinimum element of each column is ";

smallestInCol($mat, $n, $m);

?>

Javascript

<script>

let MAX = 100;

    function smallestInRow(mat,n,m) {

        document.write(" { ");

        for (let i = 0; i < n; i++) {

            let minm = mat[i][0];

            for (let j = 1; j < m; j++) {

                if (mat[i][j] < minm) {

                    minm = mat[i][j];

                }

            }

            document.write(minm + ", ");

        }

        document.write("}"+"<br>");

    }

    function smallestInCol(mat,n,m) {

        document.write(" { ");

        for (let i = 0; i < m; i++) {

            let minm = mat[0][i];

            for (let j = 1; j < n; j++) {

                if (mat[j][i] < minm) {

                    minm = mat[j][i];

                }

            }

            document.write(minm + ", ");

        }

        document.write("}");

    }

        let n = 3, m = 3;

        let mat = [[2, 1, 7],

        [3, 7, 2],

        [5, 4, 9]];

        document.write("Minimum element of each row is ");

        smallestInRow(mat, n, m);

        document.write("nMinimum element of each column is ");

        smallestInCol(mat, n, m);

</script>

Output

Minimum element of each row is  { 1, 2, 4, }
Minimum element of each column is  { 2, 1, 2, }

Complexity Analysis:

  • Time complexity: O(n*m), as we are using nested for loops to traverse the Matrix.
  • Auxiliary Space: O(1), as we are not using any extra space.

Last Updated :
09 Sep, 2022

Like Article

Save Article

Решение писать не буду, но направлю твоё мышление, потому-что у тебя сейчас код написан просто “от балды”, и не делает вообще ничего

Первым дело ты определил что размер матрицы (i x j), где i – высота матрицы (строки), j – ширина (столбцы)
По заданию, нужно найти минимальное значение в каждой строке матрицы, соответственно перебираем строки

for (let i = 0, i < mass.length, i++) {
  // mass[i] это строка массива в каждой итерации цикла
}

до этого момента у тебя всё правильно, а теперь начинаются ошибки. По логике, чтобы найти минимальное значение в строке, нужно пройтись по каждому элементу в текущей строке mass[i], соответственно количество итераций, во втором цикле, должно быть равно mass[i].length, а не mass.length, как у тебя сейчас

for (let j = 0, j < mass[i].length, j++) {
  // mass[i][j] это каждый столбец в строке 
}

теперь, остаётся только сравнивать каждый элемент mass[i][j], и найти минимальный, для этого перед началом цикла, тебе нужно создать переменную, в которую ты запоминаешь минимальное значение. Ты пытался это сделать, но присваиваешь s = 0, хотя лучше занести сюда первое значение в массиве let min = mass[i][0] (задаю название переменной так, чтобы было понятно что она означает)
И перебирая элементы в цикле, ты должен сравнивать значение текущего минимального (min) и значение текущего элемента (mass[i][j]), если элемент текущий получился меньше, то присваиваешь его значение в минимальному

// вариант 1.
if (min > mass[i][j]) min = mass[i][j];

// вариант 2.
min = Math.min(min, mass[i][j]);

по окончанию цикла, у тебя в переменной min, будет минимальное значение в строке матрицы

for (let i = 0, i < mass.length, i++) {
  // mass[i] это строка массива в каждой итерации цикла
  // тут создавай переменную min
  for (let j = 0, j < mass[i].length, j++) {
    // mass[i][j] это каждый столбец в строке 
    
    // тут сравнивай текущее значение с минимальным
  }
  // тут у тебя min будет минимальным в строке
}

0 / 0 / 0

Регистрация: 10.12.2011

Сообщений: 36

1

В каждой строке матрицы найти минимальный элемент

31.05.2012, 19:42. Показов 40948. Ответов 6


Студворк — интернет-сервис помощи студентам

Дана матрица размера M × N. В каждой строке матрицы найти минимальный элемент



0



AAA-

14 / 14 / 5

Регистрация: 14.02.2012

Сообщений: 46

31.05.2012, 20:18

2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "stdafx.h"
#include <iostream>
#include <time.h>
using namespace std;
int main()
{  setlocale(0,"rus");
   srand(time(0));
   int matrix[100][100];
   int mass[100];
   int M,N;
   cout<<"Введите кол-во строк: ";
   cin>>M;
   cout<<"Введите кол-во столбцов: ";
   cin>>N;
   for(int i=0;i<M;i++){
       int count=0;
       if(i%M)
           cout<<endl;
       for(int j=0;j<N;j++){
           matrix[i][j]=rand()%100;
           cout<<matrix[i][j]<<" ";}
   }
  int min=matrix[0][0];
  for(int i=0;i<M;i++){
      int min=matrix[i][0];
      for(int j=0;j<N;j++){
          if(matrix[i][j]<min)
              min=matrix[i][j];}
          mass[i]=min;}
  
  cout<<endl<<endl;
  for(int i=0;i<M;i++)
      cout<<mass[i]<<" ";
   cout<<endl;
    return 0;
}



2



HappyAndRu

13 / 13 / 7

Регистрация: 19.05.2012

Сообщений: 46

31.05.2012, 21:02

3

вот мой вариант:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <cstdlib>
#include <time.h>
 
using namespace std;
 
int main ()
{ 
    srand(time(NULL));
    
    int m,n,min;
    cout << "M: ";
    cin >> m;
    cout << "N: ";
    cin >> n;
    int aMN[m][n];
    
    for (int i=0; i<m; i++)
    {
        for (int j=0; j<n; j++)
        {
            aMN[i][j]=rand()%201-100;
            if (j==0)
               min=aMN[i][j];
            else if (min>aMN[i][j])
               min=aMN[i][j];  
            cout << " " << aMN[i][j];
        }
    cout << " (" << min << ")" << endl;
    }
 
    system("pause");
    return 0;
}



1



DanilAREFY

19 / 19 / 6

Регистрация: 12.04.2011

Сообщений: 35

31.05.2012, 21:55

4

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
 
using namespace std;
 
int const nX=5, nY=10;
 
int search(int, int nArr[nX][nY]);
void input(int nArr[nX][nY]);
void output(int nArr[nX][nY]);
 
int main(void)
{
    int nArray[nX][nY];
    input(nArray);
    output(nArray);
    for(int nI=0; nI<nX; nI++)
    {
        cout << "Minimum: "
            << search(nI, nArray)
            << endl;
    }
    system("pause");
    return 0;
}
 
void input(int nArr[nX][nY])
{
    for(int nI=0; nI<nX; nI++)
    {
        for(int nJ=0; nJ<nY; nJ++)
        {
            cin >> nArr[nI][nJ];
        }
    }
}
 
int search(int nI, int nArr[nX][nY])
{
    int temp=1000;
    for(int nJ=0; nJ<nY; nJ++)
    {
        if(nArr[nI][nJ]<temp)
        {
            temp=nArr[nI][nJ];
        }
    }
    return temp;
}
 
void output(int nArr[nX][nY])
{
    for(int nI=0; nI<nX; nI++)
    {
        for(int nJ=0; nJ<nY; nJ++)
        {
            cout << nArr[nI][nJ]
                << " "; 
        }
        cout << endl;
    }
}



1



alkagolik

Заблокирован

31.05.2012, 22:33

5

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <array>
#include <cstdlib>
#include <ctime>
#include <iomanip>
 
using namespace std;
 
int main() {
 
    const size_t s = 6;
    size_t iter = 0;
    array< array< size_t, s >, s > matr;
    array< size_t, s > min;
 
    min.fill( 0xffffffff );
    srand( time( 0 ) );
 
    for ( size_t i = 0; i < s; ++i ) {
        for ( size_t j = 0; j < s; ++j ) {
            matr.at(i).at(j) = rand() % ( s * s );
            if ( min.at(i) > matr.at(i).at(j) )
                min.at(i) = matr.at(i).at(j);
            cout << hex << setw( 3 ) << matr.at(i).at(j);
        }
        cout << endl;
    }
    
    cout << endl;
    for ( auto it = min.begin(); it != min.end(); ++it )
        cout << hex << setw( 3 ) << min.at(iter++);
    cout << endl;
 
    return 0;
}



1



MrGluck

Форумчанин

Эксперт CЭксперт С++

8194 / 5044 / 1437

Регистрация: 29.11.2010

Сообщений: 13,453

01.06.2012, 01:02

6

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
#include <iterator>
#include <random>
 
int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> uid(0, 99); 
    const std::size_t M = 10, N = 15;
    int arr[M][N];
    std::for_each(arr, arr + M, [&uid, &gen](int* pvalue)
    {
        std::generate(pvalue, pvalue + N, [&uid, &gen] {return uid(gen); } );
        std::copy(pvalue, pvalue + N, std::ostream_iterator<int> (std::cout, " ") ); 
        std::cout<< "Min: "<< *std::min_element(pvalue, pvalue + N)<< std::endl; 
    } );
    return 0;
}



1



Aniotri

0 / 0 / 0

Регистрация: 22.12.2020

Сообщений: 2

01.01.2021, 21:59

7

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <limits.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
 
int main(int argc, char* argv[]){
    int m, n;
    std::cin >>m>>n;
    float M[m][n];
    int i, j=0, t;
    for (int i = 0; i < m; i++){
        for (int j = 0; j < n; j++){
        
           std:: cin>> M[i][j];
        }
    }
 
    int arr[m];
 
    for (int i=0, mini; i<m; i++){
        mini = INT_MAX;
        for (int j=0; j<n; j++)
            if (M[i][j]<mini) mini = M[i][j];
        arr[i] = mini;
    }
 
    printf("n");
 
    for (int i=0; i<m; i++)
        printf ("%dt",arr[i]);
 
    printf("n");
        system("pause");
 
    return 0;
}



0



Минимальные элементы массива

Синтаксис

Описание

пример

M = min(A) возвращает минимальные элементы массива.

  • Если A вектор, затем min(A) возвращает минимум A.

  • Если A матрица, затем min(A) вектор-строка, содержащий минимальное значение каждого столбца.

  • Если A многомерный массив, затем min(A) действует вдоль первого измерения массива, размер которого не равняется 1, обработка элементов как векторы. Размер этой размерности становится 1 в то время как размеры всех других размерностей остаются то же самое. Если A пустой массив с первой размерностью 0, затем min(A) возвращает пустой массив с тем же размером как A.

пример

M = min(A,[],dim) возвращает минимальный элемент по измерению dim. Например, если A матрица, затем min(A,[],2) вектор-столбец, содержащий минимальное значение каждой строки.

пример

M = min(A,[],nanflag) задает, включать ли или не использовать NaN значения в вычислении. Например, min(A,[],'includenan') включает весь NaN значения в A в то время как min(A,[],'omitnan') игнорирует их.

M = min(A,[],dim,nanflag) также задает размерность, которую задает направление расчета при использовании nanflag опция.

пример

[M,I] =
min(___)
также возвращает индекс в операционную размерность, которая соответствует минимальному значению A для любого из предыдущих синтаксисов.

пример

M = min(A,[],'all') находит минимум по всем элементам A. Этот синтаксис допустим для MATLAB® версии R2018b и позже.

пример

M = min(A,[],vecdim) вычисляет минимум по размерностям, заданным в векторном vecdim. Например, если A матрица, затем min(A,[],[1 2]) вычисляет минимум по всем элементам в A, поскольку каждый элемент матрицы содержится в срезе массивов, заданном размерностями 1 и 2.

M = min(A,[],'all',nanflag) вычисляет минимум по всем элементам A при использовании nanflag опция.

M = min(A,[],vecdim,nanflag) задает несколько размерностей, которых задают направление расчета при использовании nanflag опция.

[M,I] =
min(A,[],'all',___)
возвращает линейный индекс в A это соответствует минимальному значению в A при определении 'all'.

пример

[M,I] =
min(A,[],___,'linear')
возвращает линейный индекс в A это соответствует минимальному значению в A.

пример

C = min(A,B) возвращает массив с самыми маленькими элементами, взятыми из A или B.

C = min(A,B,nanflag) также задает, как обработать NaN значения.

___ = min(___,'ComparisonMethod',method) опционально задает, как сравнить элементы для любого из предыдущих синтаксисов. Например, для векторного A = [-1 2 -9], синтаксис min(A,[],'ComparisonMethod','abs') сравнивает элементы A согласно их абсолютным значениям и возвращает -1.

Примеры

свернуть все

Самый маленький векторный элемент

Создайте вектор и вычислите его самый маленький элемент.

A = [23 42 37 15 52];
M = min(A)

Самый маленький комплексный элемент

Создайте комплексный вектор и вычислите его самый маленький элемент, то есть, элемент с наименьшей величиной.

A = [-2+2i 4+i -1-3i];
min(A)

Самый маленький элемент в каждом столбце матрицы

Создайте матрицу и вычислите самый маленький элемент в каждом столбце.

Самый маленький элемент в каждой матричной строке

Создайте матрицу и вычислите самый маленький элемент в каждой строке.

A = [1.7 1.2 1.5; 1.3 1.6 1.99]
A = 2×3

    1.7000    1.2000    1.5000
    1.3000    1.6000    1.9900

Самое маленькое включение элемента NaN

Создайте вектор и вычислите его минимум, исключая NaN значения.

A = [1.77 -0.005 3.98 -2.95 NaN 0.34 NaN 0.19];
M = min(A,[],'omitnan')

min(A) также приведет к этому результату начиная с 'omitnan' опция по умолчанию.

Используйте 'includenan' отметьте, чтобы возвратить NaN.

M = min(A,[],'includenan')

Самые маленькие индексы элемента

Создайте матричный A и вычислите самые маленькие элементы в каждом столбце, а также индексах строки A в котором они появляются.

Минимум страницы массивов

Создайте трехмерный массив и вычислите минимум по каждой странице данных (строки и столбцы).

A(:,:,1) = [2 4; -2 1];
A(:,:,2) = [9 13; -5 7];
A(:,:,3) = [4 4; 8 -3];
M1 = min(A,[],[1 2])
M1 = 
M1(:,:,1) =

    -2


M1(:,:,2) =

    -5


M1(:,:,3) =

    -3

Начиная в R2018b, вычислять минимум по всем размерностям массива, можно или задать каждую размерность в векторном аргументе размерности или использовать 'all' опция.

Возвратите линейные индексы

Создайте матричный A и возвратите минимальное значение каждой строки в матричном M. Используйте 'linear' опция, чтобы также возвратить линейные индексы I таким образом, что M = A(I).

[M,I] = min(A,[],2,'linear')

Самое маленькое сравнение элемента

Создайте матрицу и возвратите наименьшее значение между каждым из его элементов по сравнению со скаляром.

Входные параметры

свернуть все

AВходной массив
скаляр | вектор | матрица | многомерный массив

Входной массив, заданный как скалярный, векторный, матричный или многомерный массив.

  • Если A является комплексным, затем min(A) возвращает комплексное число с наименьшей величиной. Если величины равны, то min(A) возвращает значение с наименьшей величиной и самым маленьким углом фазы.

  • Если A скаляр, затем min(A) возвращает A.

  • Если A пустой массив 0 на 0, затем min(A) также.

Если A имеет вводят categorical, затем это должно быть порядковым.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | categorical | datetime | duration
Поддержка комплексного числа: Да

dimРазмерность, которая задает направление расчета
положительный целочисленный скаляр

Величина для работы, заданная как положительный целый скаляр. Если значение не задано, то по умолчанию это первый размер массива, не равный 1.

Размерность dim указывает на размерность, длина которой уменьшает до 1. size(M,dim) 1, в то время как размеры всех других размерностей остаются то же самое, если size(A,dim) 0. Если size(A,dim) 0, затем min(A,dim) возвращает пустой массив с тем же размером как A.

Рассмотрите двумерный входной массив, A:

  • Если dim = 1, затем min(A,[],1) возвращает вектор-строку, содержащий самый маленький элемент в каждом столбце.

  • Если dim = 2, затем min(A,[],2) возвращает вектор-столбец, содержащий самый маленький элемент в каждой строке.

min возвращает A если dim больше ndims(A).

vecdimВектор из размерностей
вектор из положительных целых чисел

Вектор из размерностей в виде вектора из положительных целых чисел. Каждый элемент представляет размерность входного массива. Продолжительности выхода в заданных операционных размерностях равняются 1, в то время как другие остаются то же самое.

Рассмотрите 2 3х3 входным массивом, A. Затем min(A,[],[1 2]) возвращает 1 1 3 массивами, элементами которых являются минимумы, вычисленные по каждой странице A.

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

BДополнительный входной массив
скаляр | вектор | матрица | многомерный массив

Дополнительный входной массив в виде скаляра, вектора, матрицы или многомерного массива. Входные параметры A и B должен или быть одного размера или иметь размеры, которые совместимы (например, A MN матрица и B скаляр или 1N вектор-строка). Для получения дополнительной информации см. “Совместимые размеры массивов для основных операций”.

  • A и B должен быть совпадающий тип данных, если каждый не double. В этом случае типом данных другого массива может быть singleдлительность, или любой целочисленный тип.

  • Если A и B порядковый categorical массивы, у них должны быть те же наборы категорий с тем же порядком.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | categorical | datetime | duration
Поддержка комплексного числа: Да

nanflag NaN условие
'omitnan' (значение по умолчанию) | 'includenan'

NaN условие в виде одного из этих значений:

  • 'omitnan' — Проигнорируйте весь NaN значения во входе. Если всеми элементами является NaN, затем min возвращает первый.

  • 'includenan' — Включайте NaN значения во входе для вычисления.

Для datetime массивы, можно также использовать 'omitnat' или 'includenat' не использовать и включать NaT значения, соответственно.

Для categorical массивы, можно также использовать 'omitundefined' или 'includeundefined' не использовать и включать неопределенные значения, соответственно.

Типы данных: char

method ‘ComparisonMethod’
'auto' (значение по умолчанию) | 'real' | 'abs'

Метод сравнения для числового входа в виде одного из этих значений:

  • 'auto' — Для числового входного массива A, сравните элементы real(A) когда A действительно, и abs(A) когда A является комплексным.

  • 'real' — Для числового входного массива A, сравните элементы real(A) когда A является действительным или комплексным. Если A имеет элементы с равными действительными частями, затем используйте imag(A) повредить связи.

  • 'abs' — Для числового входного массива A, сравните элементы abs(A) когда A является действительным или комплексным. Если A имеет элементы с равной величиной, затем используйте angle(A) в интервале (-π,π], чтобы повредить связи.

Выходные аргументы

свернуть все

M — Минимальные значения
скаляр | вектор | матрица | многомерный массив

Минимальные значения, возвращенные как скаляр, вектор, матрица или многомерный массив. size(M,dim) 1, в то время как размеры всех других размерностей совпадают с размером соответствующей размерности в A, если size(A,dim) 0. Если size(A,dim) 0, затем M пустой массив с тем же размером как A.

I — Индекс
скаляр | вектор | матрица | многомерный массив

Индексируйте, возвращенный как скаляр, вектор, матрица или многомерный массив. I одного размера с первым выходом.

Когда 'linear' не задан, I индекс в операционную размерность. Когда 'linear' задан, I содержит линейные индексы A соответствие минимальным значениям.

Если самый маленький элемент происходит несколько раз, то I содержит индекс к первому вхождению значения.

C — Минимальные элементы от A или B
скаляр | вектор | матрица | многомерный массив

Минимальные элементы от A или B, возвращенный как скаляр, вектор, матрица или многомерный массив. Размер C определяется неявным расширением размерностей A и BДля получения дополнительной информации см. “Совместимые размеры массивов для основных операций”.

Тип данных C зависит от типов данных A и B:

  • Если A и B совпадающий тип данных, затем C совпадает с типом данных A и B.

  • Если любой A или B single, затем C single.

  • Если любой A или B целочисленный тип данных с другим скалярный double, затем C принимает целочисленный тип данных.

Расширенные возможности

“Высокие” массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Указания и ограничения по применению:

  • Если вы задаете пустой массив для второго аргумента для того, чтобы предоставить dim или nanflag, второй аргумент должен иметь фиксированный размер и размерности 00.

  • Если вы задаете dim или nanflag, затем они должны быть константами.

  • Если вход является массивом переменного размера, длина размерности, которой задает направление расчета не должна быть нулем во времени выполнения.

  • “Смотрите информацию о генерации кода функций Toolbox (MATLAB Coder) в разделе “”Ограничения переменных размеров””.”.

  • Смотрите генерацию кода для комплексных данных с мнимыми частями с нулевым знаком (MATLAB Coder).

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Указания и ограничения по применению:

  • Если вы задаете пустой массив для второго аргумента для того, чтобы предоставить dim или nanflag, второй аргумент должен иметь фиксированный размер и размерности 00.

  • Если вы задаете dim или nanflag, затем они должны быть константами.

  • “Смотрите информацию о генерации кода функций Toolbox (MATLAB Coder) в разделе “”Ограничения переменных размеров””.”.

  • Смотрите генерацию кода для комплексных данных с мнимыми частями с нулевым знаком (MATLAB Coder).

Основанная на потоке среда
Запустите код в фоновом режиме с помощью MATLAB® backgroundPool или ускорьте код с Parallel Computing Toolbox™ ThreadPool.

Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.

Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.

Эта функция полностью поддерживает массивы графического процессора. Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox).

Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.

Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox).

Представлено до R2006a

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           Console.WriteLine("Введите размерность матрецы n m = ");
            int m =  Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("n n = ");
            int n = Convert.ToInt32(Console.ReadLine());
            // Объявляем двумерный массив
            int[,] matrix = new int[m, n];
 
            Random ran = new Random();
 
            // Инициализируем данный массив
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    matrix[i, j] = ran.Next(1, 15);
                    Console.Write("{0}t", matrix[i, j]);
                }
                Console.WriteLine();
            }
 
            Console.WriteLine("nМинимальное значение в строках: ");
            for (int i = 0; i < m; i++)
            {
                int minLine = matrix[i, 0];
                for (int j = 0; j < n; j++)
                {
                    if (matrix[i, j] < minLine)
                    {
                        minLine = matrix[i, j];
                    }                   
                }
                Console.WriteLine("Строка {0}, значение: {1}", i, minLine);
                Console.WriteLine();
            }
 
            Console.ReadKey();
        }
    }
}

Добавить комментарий