Как найти среднее геометрическое матрицы

Syntax

Description

example

m = geomean(X) returns
the geometric mean of
X.

  • If X is a vector, then geomean(X) is the
    geometric mean of the elements in X.

  • If X is a matrix, then geomean(X) is a row
    vector containing the geometric mean of each column of X.

  • If X is a multidimensional array, then
    geomean operates along the first nonsingleton dimension of
    X.

example

m = geomean(X,'all')
returns the geometric mean of all the elements in X.

example

m = geomean(X,dim)
returns the geometric mean along the operating dimension dim of
X.

example

m = geomean(X,vecdim)
returns the geometric mean over the dimensions specified in the vector
vecdim. For example, if X is a 2-by-3-by-4 array,
then geomean(X,[1 2]) returns a 1-by-1-by-4 array. Each element of the
output array is the geometric mean of the elements on the corresponding page of
X.

example

m = geomean(___,nanflag)
specifies whether to exclude NaN values from the calculation, using any
of the input argument combinations in previous syntaxes. By default,
geomean includes NaN values in the calculation
(nanflag has the value 'includenan'). To exclude
NaN values, set the value of nanflag to
'omitnan'.

Examples

collapse all

Compare Geometric and Arithmetic Mean

Set the random seed for reproducibility of the results.

Create a matrix of exponential random numbers with 5 rows and 4 columns.

X = 5×4

    0.2049    2.3275    1.8476    1.9527
    0.0989    1.2783    0.0298    0.8633
    2.0637    0.6035    0.0438    0.0880
    0.0906    0.0434    0.7228    0.2329
    0.4583    0.0357    0.2228    0.0414

Compute the geometric and arithmetic means of the columns of X.

geometric = 1×4

    0.2805    0.3083    0.2079    0.2698

arithmetic = 1×4

    0.5833    0.8577    0.5734    0.6357

The arithmetic mean is greater than the geometric mean for all the columns of X.

Geometric Mean of All Elements

Find the geometric mean over multiple dimensions by using the 'all' input argument.

Create a 2-by-5-by-4 array X.

X = reshape(1:40,[2 5 4])
X = 
X(:,:,1) =

     1     3     5     7     9
     2     4     6     8    10


X(:,:,2) =

    11    13    15    17    19
    12    14    16    18    20


X(:,:,3) =

    21    23    25    27    29
    22    24    26    28    30


X(:,:,4) =

    31    33    35    37    39
    32    34    36    38    40

Find the geometric mean of all the elements of X.

m is the geometric mean of the entire array X.

Geometric Mean Along Specified Dimensions

Find the geometric mean along different operating dimensions and vectors of dimensions for a multidimensional array.

Create a 3-by-5-by-2 array X.

X = reshape(1:30,[3 5 2])
X = 
X(:,:,1) =

     1     4     7    10    13
     2     5     8    11    14
     3     6     9    12    15


X(:,:,2) =

    16    19    22    25    28
    17    20    23    26    29
    18    21    24    27    30

Find the geometric mean of X along the default dimension.

gmean1 = 
gmean1(:,:,1) =

    1.8171    4.9324    7.9581   10.9696   13.9761


gmean1(:,:,2) =

   16.9804   19.9833   22.9855   25.9872   28.9885

By default, geomean operates along the first dimension of X whose size does not equal 1. In this case, this dimension is the first dimension of X. Therefore, gmean1 is a 1-by-5-by-2 array.

Find the geometric mean of X along the second dimension.

gmean2 = 
gmean2(:,:,1) =

    5.1549
    6.5784
    7.8155


gmean2(:,:,2) =

   21.5814
   22.6004
   23.6177

gmean2 is a 3-by-1-by-2 array.

Find the geometric mean of X along the third dimension.

gmean3 = 3×5

    4.0000    8.7178   12.4097   15.8114   19.0788
    5.8310   10.0000   13.5647   16.9115   20.1494
    7.3485   11.2250   14.6969   18.0000   21.2132

gmean3 is a 3-by-5 array.

Find the geometric mean of each page of X by specifying the first and second dimensions using the vecdim input argument.

mpage = 
mpage(:,:,1) =

    6.4234


mpage(:,:,2) =

   22.5845

For example, mpage(1,1,2) is the geometric mean of the elements in X(:,:,2).

Find the geometric mean of the elements in each X(i,:,:) slice by specifying the second and third dimensions.

mrow = 3×1

   10.5475
   12.1932
   13.5862

For example, mrow(3) is the geometric mean of the elements in X(3,:,:), and is equivalent to specifying geomean(X(3,:,:),'all').

Geometric Mean Excluding NaN

Create a vector and compute its geomean, excluding NaN values.

x = 1:10;
x(3) = nan; % Replace the third element of x with a NaN value
n = geomean(x,'omitnan')

If you do not specify 'omitnan', then geomean(x) returns NaN.

Input Arguments

collapse all

XInput data
nonnegative vector | nonnegative matrix | nonnegative multidimensional array

Input data that represents a sample from a population, specified as a nonnegative
vector, matrix, or multidimensional array.

  • If X is a vector, then geomean(X) is
    the geometric mean of the elements in X.

  • If X is a matrix, then geomean(X) is a
    row vector containing the geometric mean of each column of
    X.

  • If X is a multidimensional array, then
    geomean operates along the first nonsingleton dimension of
    X.

To specify the operating dimension when X is a matrix or an
array, use the dim input argument.

Data Types: single | double

dimDimension
positive integer scalar

Dimension along which to operate, specified as a positive integer scalar. If you do
not specify a value, then the default value is the first array dimension of
X whose size does not equal 1.

Consider a two-dimensional array X:

  • If dim is equal to 1, then geomean(X,1)
    returns a row vector containing the geometric mean for each column in
    X.

  • If dim is equal to 2, then geomean(X,2)
    returns a column vector containing the geometric mean for each row in
    X.

If dim is greater than ndims(X) or if
size(X,dim) is 1, then geomean returns
X.

Data Types: single | double

vecdimVector of dimensions
positive integer vector

Vector of dimensions, specified as a positive integer vector. Each element of
vecdim represents a dimension of the input array
X. The output m has length 1 in the
specified operating dimensions. The other dimension lengths are the same for
X and m.

For example, if X is a 2-by-3-by-3 array, then
geomean(X,[1 2]) returns a 1-by-1-by-3 array. Each element of the
output is the geometric mean of the elements on the corresponding page of
X.

Mapping of input dimension of 2-by-3-by-3 to output dimension of 1-by-1-by-3

Data Types: single | double

nanflagNaN condition
'includenan' (default) | 'omitnan'

NaN condition, specified as one of these values:

  • 'includenan' — Include NaN values when
    computing the geomean. This returns
    NaN.

  • 'omitnan' — Ignore NaN values in the
    input.

Data Types: char | string

Output Arguments

collapse all

m — Geometric mean
scalar | vector | matrix | multidimensional array

Geometric mean, returned as a scalar, vector, matrix, or multidimensional
array.

More About

collapse all

Geometric Mean

The geometric mean of a sample X is

where n is the number of values in
X.

Extended Capabilities

Tall Arrays
Calculate with arrays that have more rows than fit in memory.

This function fully supports tall arrays. For
more information, see Tall Arrays.

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Usage notes and limitations:

  • These input arguments are not supported: 'all',
    vecdim, and nanflag.

  • The dim input argument must be a compile-time constant.

  • If you do not specify the dim input
    argument, the working (or operating) dimension can be different in the generated code. As a
    result, run-time errors can occur. For more details, see Automatic dimension restriction (MATLAB Coder).

For more information on code generation, see Introduction to Code Generation and General Code Generation Workflow.

Thread-Based Environment
Run code in the background using MATLAB® backgroundPool or accelerate code with Parallel Computing Toolbox™ ThreadPool.

This function fully supports thread-based environments. For
more information, see Run MATLAB Functions in Thread-Based Environment.

GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.

Usage notes and limitations:

  • The 'all' and vecdim input arguments are not supported.

For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox).

Version History

Introduced before R2006a

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using System;
class Program
{
    static void Main()
    {
        Console.Write("Введите количество строк в матрице: ");
        int M = int.Parse(Console.ReadLine());
 
        Console.Write("Введите количество столбцов в матрице: ");
        int N = int.Parse(Console.ReadLine());
        double count = (double)M * N;
        int[,] matrix = new int[M, N];
        
        Random r = new Random(); // объявление переменной для генерации случ. чисел
 
        for (int i = 0; i < M; i++) //  заполнения матрицы случ. числами
        {
            for (int j = 0; j < N; j++)
            {
                matrix[i, j] = r.Next(1, 99); // от 1 до 99
            }
        }
        /*
        //заполение матрицы с клавиатуры
        Console.WriteLine();
        Console.Write("Введите значение {0} ", count);
        Console.WriteLine();
        for (int i = 0; i < M; ++i)
        {
            for (int j = 0; j < N; ++j)
            {
                Console.Write("Введите значение элемента матрицы для строки {0}, столбец {1}: ", i,j);
 
                matrix[i, j] = Convert.ToInt32(Console.ReadLine());
            }
        }
        */
        Console.WriteLine();
        Console.WriteLine("Получаем матрицу вида:");
        Console.WriteLine();
        for (int i = 0; i < M; i++) // вывод матрицы
        {
            for (int j = 0; j < N; j++)
            {
                Console.Write("{0,4}", matrix[i, j]);
            }
            Console.WriteLine();
        }
 
 
        double Mul = 1.0;
        int moreAverage = 0;//больше среднего
        int lessAverage = 0;//меньше среднего
 
        //Подсчёт произведения  элементов матрицы
        for (int i = 0; i < M; i++)
        {
            for (int j = 0; j < N; j++)
            {
                Mul *= matrix[i, j];
            }
        }
        //среднее геометрическое значение элементов матрицы 
        double averGeom = Math.Pow(Mul, 1.0 / count);
        Console.WriteLine();
        Console.WriteLine("Cреднее геометрическое значение элементов матрицы : " + averGeom);
 
        /*Подсчёт каких элементов в матрице больше, больших среднего геометрического 
            или меньших среднего геометрического*/
        for (int i = 0; i < M; i++)
        {
            for (int j = 0; j < N; j++)
            {
                if (averGeom < matrix[i, j])
                    moreAverage++;
                else if (averGeom > matrix[i, j])
                    lessAverage++;
            }
        }
 
        Console.WriteLine();
 
        if (moreAverage > lessAverage)
            Console.WriteLine("Элементов в матрице, которые больше среднего геометрического, больше.");
        if (moreAverage < lessAverage)
            Console.WriteLine("Элементов в матрице, которые меньше среднего геометрического, больше.");
        Console.ReadKey();
    }
}

Цель
работы:
выработать
практические
привычки
в
составлении
алгоритмов
на
селективную
обработку
двумерных
массивов.

Общие указания

1 Вложенные циклы

Вложенные
циклы используются при работе с
многомерными функциями и множествами.
При этом нужно следить, чтобы не было
перекрещивания циклов. Его не будет,
если циклы закрываются в порядке,
обратном открыванию (см. пример 5).

Пример
10.

В матрице a(4,5)
найти произведение положительных чисел.

Порядок
работы

Шаг
1. Вводим матрицу a(4,5).

Шаг
2. Задаем начальное значение произведения
p=1.

Шаг
3. Организовываем цикл, перебирающий
строки матрицы (т.е. индекс i),
начиная с 1-ой и кончая 4-ой.

Шаг
4. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.

Шаг
5. Если aij
>
0,

тогда присваиваем p
=
p

aij.

Шаг
6. Если цикл по j
не закончился, идем на начало цикла,
т.е. на шаг 4.

Шаг
7. Если цикл по i
не закончился, идем на начало цикла,
т.е. на шаг 3.

Шаг
8. Печатаем p.

Шаг
9. Останов.

Блок-схема

3.9 Обработка заданной строки (столбца) матрицы

Пример
11.

Найти сумму четных чисел третьей строки
матрицы a(4,5).

Порядок
работы

Шаг
1. Вводим матрицу a(4,5).

Шаг
2. Устанавливаем начальное значение
суммы s
= 0.

Шаг
3. Задаем номер обрабатываемой строки
i
= 3
.

Шаг
4. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.

Шаг
5. Если aij

четно,
тогда присваиваем s
=
s
+
aij.

Шаг
6. Если цикл по j
не закончился, идем на начало цикла,
т.е. на шаг 4.

Шаг
7. Печатаем s.

Шаг
8. Останов.

3.10 Обработка заданной диагонали матрицы

Пример
12.

Найти сумму четных чисел главной
диагонали матрицы a(5,5).

Порядок
работы

Шаг
1. Вводим матрицу a(5,5).

Шаг
2. Устанавливаем начальное значение
суммы s=0.

Шаг
3. Организовываем цикл, перебирающий
строки матрицы (т.е. индекс i),
начиная с 1-й и кончая 5-й.

Шаг
4. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.

Шаг
5. Если aij

четно
и i
=
j,
присваиваем s
=
s
+
aij.

Шаг
6. Если цикл по j
не закончился, идем на начало цикла ,
т.е. на шаг 4.

Шаг
7. Если цикл по i
не закончился, идем на начало цикла,
т.е. на шаг 3.

Шаг
8. Печатаем s.

Шаг
9. Останов.

3.11 Селективная обработка строки (столбца) матрицы, удовлетворяющей заданному условию

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

Пример
13.

В матрице a(4,5)
найти количество четных чисел в строке,
у которой второй элемент положительный
(если таких строк несколько, результат
распечатать отдельно для каждой).

Порядок
работы

Шаг
1. Вводим матрицу a(4,5).

Шаг
2. Организовываем цикл, перебирающий
cтроки
матрицы (т.е. индекс i),
начиная с 1-й и кончая 4-й.

Шаг
3. Если ai2
> 0
,
то идем на шаг 4, иначе берем другую
строку, т.е. идем на шаг 7.

Шаг
4. Устанавливаем начальное значение
количества k=0.

Шаг
5. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.

Шаг
6. Если aij

четно,
тогда присваиваем k
=
k
+ 1
.

Шаг
7. Если цикл по j
не закончился, идем на начало цикла,
т.е. на шаг 5.

Шаг
8. Печатаем k.

Шаг
9. Если цикл по i
не закончился, идем на начало цикла,
т.е. на шаг 2.

Шаг
10. Останов.

Пример
14.

В матрице a(4,5)
найти количество четных чисел в строке,
у которой сумма элементов положительна
(если таких строк несколько, результат
распечатать отдельно для каждой).

Порядок
работы

Шаг
1. Вводим матрицу a(4,5).

Шаг
2. Организовываем цикл, перебирающий
cтроки
матрицы (т.е. индекс i),
начиная с 1-й и кончая 4-й.

Шаг
3. Устанавливаем начальное значение
суммы s
= 0.

Шаг
4. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.

Шаг
5. Присваиваем s
=
s
+
aij.

Шаг
6. Если цикл по j
не закончился, идем на начало цикла,
т.е. на шаг 4.

Шаг
7. Если s
> 0
,
то идем на шаг 8, иначе — берем другую
строку, т.е. идем на шаг 13.

Шаг
8. Устанавливаем начальное значение
количества k=0.

Шаг
9. Организовываем цикл, перебирающий
столбцы матрицы (т.е. индекс j),
начиная с 1-го и кончая 5-м.

Шаг
10. Если aij

четно,
тогда присваиваем k
=
k
+ 1
.

Шаг
11. Если цикл по j
не закончился, идем на начало цикла,
т.е. на шаг 9.

Шаг
12. Печатаем k.

Шаг
13. Если цикл по i
не закончился, идем на начало цикла,
т.е. на шаг 2.

Шаг
14. Останов.

Задание
8.

Составить блок-схему для задания,
указанного в таблице 9. Имя и размер
матрицы выбрать самостоятельно.

Таблица
9

Вар.

Условие
задачи

1

Найти
произведение отрицательных чисел
матрицы

2

Найти
минимальный по модулю элемент матрицы

3

Найти
максимальный четный элемент матрицы

4

Найти
минимальный нечетный элемент матрицы

5

Вычислить
сумму положительных и сумму отрицательных
элементов матрицы

6

Найти
среднее арифметическое положительных
элементов матрицы

7

Найти
среднее геометрическое положительных
элементов матрицы

8

Найти
количество элементов матрицы,
находящихся в интервале (-3,8]

9

Найти
среднее арифметическое элементов
матрицы, больших 5

10

Найти
произведение четных чисел матрицы

11

Найти
среднее арифметическое отрицательных
элементов матрицы

12

Найти
сумму произведений положительных
элементов строк матрицы

13

Найти
сумму произведений отрицательных
элементов столбцов матрицы

14

Найти
произведение сумм отрицательных
элементов строк матрицы

15

Найти
произведение сумм положительных
элементов столбцов матрицы

16

Найти
сумму произведений элементов строк
матрицы

17

Найти
сумму нечетных чисел столбцов матрицы

18

Найти
произведение нечетных элементов
строк матрицы

19

Найти
произведение сумм четных элементов
столбцов матрицы

20

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

21

Найти
минимальный положительный элемент
матрицы

22

Определить
место минимального четного числа
матрицы

23

Найти
все отрицательные элементы матрицы

24

Найти
все положительные элементы матрицы

25

Найти
все отрицательные четные элементы
матрицы

26

Определить
место максимального положительного
элемента матрицы

27

Найти
все положительные нечетные элементы
матрицы

28

Найти
среднее арифметическое четных чисел
матрицы

29

Найти
среднее геометрическое нечетных
чисел матрицы

30

Определить
строку, в которой находится минимальный
по модулю элемент матрицы

Задание
9.

Составить блок-схему для задания,
указанного в таблице 10. Имя и размер
матрицы выбрать самостоятельно.

Таблица
10

Вар.

Условие
задачи

1

Найти
сумму четных чисел четвертой строки
матрицы

2

Найти
сумму нечетных чисел третьего столбца
матрицы

3

Вычислить
произведение отрицательных чисел
второго столбца матрицы

4

Определить
количество отрицательных чисел второй
строки матрицы

5

Найти
произведение нечетных чисел четвертого
столбца матрицы

6

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

7

Найти
сумму нечетных чисел пятой строки
матрицы

8

Найти
сумму положительных четных чисел
второго столбца матрицы

9

Найти
максимальное отрицательное число
третьего столбца матрицы

10

Найти
минимальное положительное число
четвертой строки матрицы

11

Найти
максимальное четное число пятой
строки матрицы

12

Найти
минимальное нечетное число четвертого
столбца матрицы

13

Найти
сумму положительных кратных 5 чисел
второго столбца матрицы

14

Найти
количество отрицательных не кратных
3 чисел пятой строки матрицы

15

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

16

Найти
произведение квадратов тех элементов
третьего столбца матрицы, модули
которых принадлежат интервалу [1,30]

17

Найти
среднее арифметическое отрицательных
элементов седьмой строки матрицы

18

Найти
сумму ненулевых элементов второго
столбца матрицы

19

Найти
разность сумм отрицательных и
положительных элементов второго
столбца матрицы

20

Найти
среднее геометрическое модулей
отрицательных элементов пятого
столбца матрицы

21

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

22

Найти
среднее арифметическое положительных
элементов второй строки матрицы

23

Найти
среднее геометрическое кратных 3
элементов пятой строки матрицы

24

Найти
частное от деления количества
отрицательных элементов пятой строки
матрицы на их сумму

25

Найти
произведение ненулевых элементов
пятого столбца матрицы

26

Найти
среднее арифметическое кратных 5
элементов пятой строки матрицы

27

Найти
среднее геометрическое ненулевых
элементов пятого столбца матрицы

28

Найти
произведение кратных 7 элементов
первого столбца матрицы

29

Найти
частное от деления суммы отрицательных
элементов второй строки матрицы на
их произведение

30

Найти
квадрат минимального числа третьей
строки матрицы

Задание
10.

Составить блок-схему для задания,
указанного в таблице 11. Имя и размер
матрицы выбрать самостоятельно.

Таблица
11

Вар.

Условие
задачи

1

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

2

Найти
количество четных чисел побочной
диагонали матрицы

3

Определить
сумму отрицательных чисел главной
диагонали матрицы

4

Найти
произведение нечетных чисел побочной
диагонали матрицы

5

Найти
произведение положительных чисел
побочной диагонали матрицы

6

Найти
сумму нечетных чисел побочной диагонали
матрицы

7

Найти
максимальное отрицательное число
главной диагонали матрицы

8

Найти
сумму положительных нечетных чисел
главной диагонали матрицы

9

Найти
минимальное положительное число
побочной диагонали матрицы

10

Найти
сумму нечетных чисел главной диагонали
матрицы

11

Найти
минимальное четное число главной
диагонали матрицы

12

Найти
минимальное нечетное число побочной
диагонали матрицы

13

Найти
сумму положительных кратных 5 чисел
побочной диагонали матрицы

14

Найти
количество отрицательных не кратных
3 чисел главной диагонали матрицы

15

Найти
количество положительных четных
чисел главной диагонали матрицы

16

Найти
произведение квадратов отрицательных
элементов главной диагонали матрицы

17

Найти
произведение отрицательных нечетных
чисел побочной диагонали матрицы

18

Найти
сумму ненулевых элементов главной
диагонали матрицы

19

Найти
разность сумм отрицательных и
положительных элементов главной
диагонали матрицы

20

Найти
среднее геометрическое модулей
отрицательных элементов побочной
диагонали матрицы

21

Найти
сумму кратных 7 положительных чисел
побочной диагонали матрицы

22

Найти
среднее арифметическое положительных
элементов побочной диагонали матрицы

23

Найти
среднее геометрическое кратных 3
элементов главной диагонали матрицы

24

Найти
частное от деления количества
отрицательных элементов побочной
диагонали матрицы на их сумму

25

Найти
произведение ненулевых элементов
главной диагонали матрицы

26

Найти
среднее арифметическое кратных 5
элементов побочной диагонали матрицы

27

Найти
среднее геометрическое ненулевых
элементов главной диагонали матрицы

28

Найти
произведение кратных 7 элементов
побочной диагонали матрицы

29

Найти
частное от деления суммы отрицательных
элементов главной диагонали матрицы
на сумму всех элементов побочной
диагонали

30

Найти
среднее арифметическое отрицательных
элементов побочной диагонали матрицы

Задание
11.

Составить блок-схему для задания,
указанного в таблице 12. Имя и размер
матрицы выбрать самостоятельно.

Таблица
12

Вар.

Условие
задачи

1

Вычислить
произведение отрицательных чисел
строки, у которой второй элемент
четный

2

Найти
сумму нечетных чисел столбца, у
которого первый элемент больше второго

3

Определить
количество отрицательных чисел
столбца, у которого первый элемент
меньше последнего

4

Найти
сумму положительных кратных 5 чисел
столбца, у которого четвертый элемент
отрицательный

5

Найти
произведение нечетных чисел столбца,
у которого первый элемент нуль

6

Найти
произведение положительных чисел
столбца, последний элемент которого
нуль

7

Найти
сумму нечетных элементов строки,
первый элемент которой кратен 3

8

Найти
максимальное отрицательное число
строки, у которой второй элемент
больше 20

9

Найти
сумму положительных четных чисел
строки, у которой первый элемент
отрицательный

10

Найти
минимальное положительное число
строки, у которой пятый элемент
отрицательный

11

Найти
минимальное четное число столбца, у
которого первый элемент больше
третьего

12

Найти
сумму положительных кратных 5 чисел
столбца, у которого четвертый элемент
отрицательный

13

Найти
количество отрицательных не кратных
3 чисел строки, у которой первый элемент
нуль

14

Найти
количество положительных четных
чисел строки, у которой пятый элемент
больше 30

15

Найти
произведение квадратов положительных
четных чисел столбца, у которого
второй элемент нуль

16

Найти
среднее арифметическое отрицательных
элементов строки, у которой четвертый
элемент отрицательный

17

Найти
разность сумм отрицательных и
положительных элементов строки, у
которой третий элемент кратен 3

18

Найти
среднее геометрическое модулей
отрицательных элементов столбца, у
которого первый элемент положительный

19

Найти
все кратные 7 положительные элементы
столбца, у которого третий элемент
нечетный

20

Найти
среднее арифметическое положительных
элементов строки, у которой первый
элемент меньше второго

21

Найти
среднее геометрическое кратных 3
элементов столбца, у которого шестой
элемент не кратен 4

22

Найти
частное от деления количества
отрицательных элементов столбца, у
которого первый элемент нуль, на их
сумму

23

Найти
все положительные нечетные числа
строки, у которой второй элемент не
кратен 3

24

Найти
количество отрицательных кратных 5
элементов столбца, у которого второй
элемент равен третьему

25

Найти
номер максимального четного числа
строки, у которой первый элемент равен
последнему

26

Найти
номер минимального нечетного числа
строки, у которой первый элемент равен
последнему

27

Найти
номер максимального четного числа
столбца, у которого первый элемент
равен последнему

28

Найти
номер минимального нечетного числа
столбца, у которого первый элемент
равен последнему

29

Найти
сумму максимального и минимального
чисел строки, у которой второй элемент
нечетный

30

Найти
номер минимального нечетного числа
строки, у которой первый элемент
четный

Задание
12
.
Составить блок-схему для задания,
указанного в таблице 13. Имя и размер
матрицы выбрать самостоятельно.

Таблица
13

Вар.

Условие
задачи

1

Вычислить
сумму положительных чисел строки, у
которой произведение элементов
нечетно

2

Найти
номер минимального нечетного числа
строки, у которой сумма элементов
четна

3

Найти
сумму максимального и минимального
чисел строки, у которой произведение
элементов нечетно

4

Найти
номер минимального нечетного числа
столбца, у которого произведение
элементов отрицательно

5

Найти
номер максимального четного числа
столбца, у которого сумма элементов
отрицательна

6

Найти
номер минимального нечетного числа
строки, у которой количество элементов
четно

7

Найти
номер максимального четного числа
строки, у которой сумма положительных
элементов кратна 3

8

Найти
количество отрицательных кратных 5
элементов столбца, у которого
произведение элементов больше 100

9

Найти
все положительные нечетные числа
строки, у которой количество
отрицательных элементов не кратно 3

10

Найти
количество отрицательных элементов
столбца, у которого сумма четных
элементов не больше 200

11

Найти
среднее геометрическое кратных 3
элементов столбца, у которого
произведение четных элементов не
кратно 4.

12

Найти
среднее арифметическое положительных
элементов строки, у которой сумма
положительных элементов нечетна

13

Найти
все кратные 7 положительные элементы
столбца, у которого произведение
отрицательных элементов четно

14

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

15

Найти
разность сумм отрицательных и
положительных элементов строки, у
которой сумма кратных 5 элементов
кратна 3

16

Найти
произведение квадратов положительных
четных чисел столбца, у которого все
элементы четны

17

Найти
количество положительных четных
чисел строки, у которой все элементы
не нули

18

Найти
среднее арифметическое отрицательных
элементов строки, у которой произведение
нечетных чисел отрицательно

19

Найти
количество отрицательных не кратных
3 чисел строки, у которой все элементы
кратны 3

20

Найти
сумму положительных кратных 5 чисел
столбца, у которого не менее трех
отрицательных элементов

21

Найти
минимальное четное число столбца, у
которого максимальный элемент четный

22

Найти
минимальное положительное число
строки, у которой сумма элементов
отрицательна

23

Найти
сумму положительных четных чисел
строки, у которой минимальный элемент
отрицательный

24

Найти
максимальное отрицательное число
строки, у которой произведение
элементов больше 200

25

Найти
сумму нечетных элементов строки, у
которой максимальный элемент кратен
4.

26

Найти
произведение положительных чисел
столбца, у которого среднее арифметическое
четных элементов больше 10

27

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

28

Найти
сумму положительных кратных 5 чисел
столбца, у которого максимальный
четный элемент отрицательный

29

Определить
количество отрицательных чисел
столбца, у которого все элементы
кратны 3

30

Вычислить
произведение отрицательных чисел
строки, у которой количество нечетных
элементов четно

Соседние файлы в папке ИТ11зт

  • #
  • #
  • #

найти среднее геометрическое строки матрицы на которой находится макс элемент.

#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "windows.h"
#include "math.h"
#define n 20
#define m 20
void main()
{
    float a[n][m],srg,max,p;
    int i,j,ri,rj;
    char otv;
    while(1)
    {
        SetConsoleCP(1251);
        SetConsoleOutputCP(1251);
        system("cls");
        printf("n Постановка");
        while(1)
        {
            printf("n кол-во строк в массиве <=%d n",n);
            scanf("%d",&ri);
            if((ri>1)&&(ri<=n))break;
            printf("n повторите ввод");
        }
        while(1)
        {
            printf("n кол-во столбцов в массиве <=%d n",m);
            scanf("%d",&rj);
            if((rj>1)&&(rj<=m))break;
            printf("n повторите ввод");
        }
        system("cls");
        printf("n Введите метрицу А n");
for(i=0;i<ri;i++)
{
for(j=0;j<rj;j++)
{
    printf("a[%d][%d]=",i+1,j+1);
scanf("%f",&a[i][j]);
}
}
            system("cls");
            printf("n Исходная матрица n");
for ( i = 0; i <ri; i ++ ) 
{
for ( j = 0; j <rj; j ++ )
      printf ( "%6.2f", a[i][j] );
 
   printf("n");
 
}
        
max=a[0][0];
for (i=0;i<ri;i++) 
{
for(j=0;i<rj;j++)
    if(a[i][j]>max)
        max=a[i][j];
}
printf("n max=%6.2f",max);
for (i=0;i<ri;i++) 
{
p=1;
srg=0;
for(j=0;i<rj;j++)
p=p*a[i][j];
srg=pow(p,1/ri);

}
for ( i = 0; i <ri; i ++ ) 
{
for ( j = 0; j <rj; j ++ )
    
printf("n srg=%6.2f",srg);
}

            printf("n Продолжить(Y/N)?");
            scanf("%s",&otv);
            if((otv=='n')||(otv=='N'))break;
    }
    printf("n Клементьев 22П");
    getch();
}

Выбивает после ввода элементов и я не додумаюсь как сделать чтобы искал среднее геометрическое только строки с макс. элементом

geomean

Синтаксис

Описание

пример

m = geomean(X) возвращает среднее геометрическое значение X.

  • Если X является вектором, тогда geomean(X) — среднее геометрическое элементов в X.

  • Если X является матрицей, тогда geomean(X) — вектор-строка, содержащая среднее геометрическое для каждого столбца X.

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

пример

m = geomean(X,'all') возвращает среднее геометрическое для всех элементов в X.

пример

m = geomean(X,dim) возвращает среднее геометрическое значение по рабочей размерности dim от X.

пример

m = geomean(X,vecdim) возвращает среднее геометрическое по размерностям, заданным в векторе vecdim. Для примера, если X — массив 2 на 3 на 4, затем geomean(X,[1 2]) возвращает 1 на 1 на 4 array. Каждый элемент массива выхода является геометрическим средним для элементов на соответствующей странице X.

пример

m = geomean(___,nanflag) определяет, следует ли исключить NaN значения из вычисления, с использованием любой комбинации входных аргументов в предыдущих синтаксисах. По умолчанию geomean включает NaN значения в вычислении (nanflag имеет значение 'includenan'). Чтобы исключить NaN значения установите значение nanflag на 'omitnan'.

Примеры

свернуть все

Сравнение среднего геометрического и арифметического

Установите случайный seed для воспроизводимости результатов.

Создайте матрицу экспоненциальных случайных чисел с 5 строками и 4 столбцами.

X = 5×4

    0.2049    2.3275    1.8476    1.9527
    0.0989    1.2783    0.0298    0.8633
    2.0637    0.6035    0.0438    0.0880
    0.0906    0.0434    0.7228    0.2329
    0.4583    0.0357    0.2228    0.0414

Вычислите геометрические и арифметические средства столбцов X.

geometric = 1×4

    0.2805    0.3083    0.2079    0.2698

arithmetic = 1×4

    0.5833    0.8577    0.5734    0.6357

Средняя арифметика больше, чем среднее геометрическое для всех столбцов X.

Среднее геометрическое всех элементов

Найдите среднее геометрическое по нескольким размерностям при помощи 'all' входной параметр.

Создайте массив 2 на 5 на 4 X.

X = reshape(1:40,[2 5 4])
X = 
X(:,:,1) =

     1     3     5     7     9
     2     4     6     8    10


X(:,:,2) =

    11    13    15    17    19
    12    14    16    18    20


X(:,:,3) =

    21    23    25    27    29
    22    24    26    28    30


X(:,:,4) =

    31    33    35    37    39
    32    34    36    38    40

Найдите среднее геометрическое для всех элементов X.

m — среднее геометрическое для всего массива X.

Среднее геометрическое по заданным измерениям

Найдите среднее геометрическое по различным рабочим размерностям и векторам измерений для многомерного массива.

Создайте массив 3 на 5 на 2 X.

X = reshape(1:30,[3 5 2])
X = 
X(:,:,1) =

     1     4     7    10    13
     2     5     8    11    14
     3     6     9    12    15


X(:,:,2) =

    16    19    22    25    28
    17    20    23    26    29
    18    21    24    27    30

Найдите среднее геометрическое значение X вдоль размерности по умолчанию.

gmean1 = 
gmean1(:,:,1) =

    1.8171    4.9324    7.9581   10.9696   13.9761


gmean1(:,:,2) =

   16.9804   19.9833   22.9855   25.9872   28.9885

По умолчанию geomean действует по первой размерности X чей размер не равен 1. В этом случае эта размерность является первой размерностью X. Поэтому gmean1 — массив 1 на 5 на 2.

Найдите среднее геометрическое значение X вдоль второго измерения.

gmean2 = 
gmean2(:,:,1) =

    5.1549
    6.5784
    7.8155


gmean2(:,:,2) =

   21.5814
   22.6004
   23.6177

gmean2 — массив 3 на 1 на 2.

Найдите среднее геометрическое значение X по третьей размерности.

gmean3 = 3×5

    4.0000    8.7178   12.4097   15.8114   19.0788
    5.8310   10.0000   13.5647   16.9115   20.1494
    7.3485   11.2250   14.6969   18.0000   21.2132

gmean3 массив 3 на 5.

Найдите среднее геометрическое для каждой страницы X путем определения первых и вторых измерений с помощью vecdim входной параметр.

mpage = 
mpage(:,:,1) =

    6.4234


mpage(:,:,2) =

   22.5845

Для примера, mpage(1,1,2) — среднее геометрическое элементов в X(:,:,2).

Найдите среднее геометрическое для элементов в каждом X(i,:,:) срез путем определения вторых и третьих размерностей.

mrow = 3×1

   10.5475
   12.1932
   13.5862

Для примера, mrow(3) — среднее геометрическое элементов в X(3,:,:), и эквивалентно указанию geomean(X(3,:,:),'all').

Среднее геометрическое исключение NaN

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

x = 1:10;
x(3) = nan; % Replace the third element of x with a NaN value
n = geomean(x,'omitnan')

Если вы не задаете 'omitnan', затем geomean(x) возвращает NaN.

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

свернуть все

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

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

  • Если X является вектором, тогда geomean(X) — среднее геометрическое элементов в X.

  • Если X является матрицей, тогда geomean(X) — вектор-строка, содержащая среднее геометрическое для каждого столбца X.

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

Чтобы задать рабочую размерность, когда X является матрицей или массивом, используйте dim входной параметр.

Типы данных: single | double

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

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

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

  • Если dim равно 1, тогда geomean(X,1) возвращает вектор-строку, содержащую среднее геометрическое для каждого столбца в X.

  • Если dim равно 2, тогда geomean(X,2) возвращает вектор-столбец, содержащее среднее геометрическое для каждой строки в X.

Если dim больше ndims(X) или если size(X,dim) равен 1, тогда geomean возвращает X.

Типы данных: single | double

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

Вектор размерностей, заданный как положительный целочисленный вектор. Каждый элемент vecdim представляет размерности массива входа X. Область выхода m имеет длину 1 в заданных рабочих размерностях. Другие длины размерности одинаковы для X и m.

Для примера, если X массив 2 на 3 на 3, тогда geomean(X,[1 2]) возвращает массив 1 на 1 на 3. Каждый элемент выхода является геометрическим средним для элементов на соответствующей странице X.

Типы данных: single | double

nanflagNaN состояние
'includenan' (по умолчанию) | 'omitnan'

NaN условие, заданное как одно из следующих значений:

  • 'includenan' — Включить NaN значений при вычислении geomean. Это возвращает NaN.

  • 'omitnan' — Игнорировать NaN значений во входе.

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

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

свернуть все

m — Среднее геометрическое
скалярный | векторный | матричный | многомерный массив

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

Подробнее о

свернуть все

Среднее геометрическое

Среднее геометрическое значение выборки X является

где n — количество значений в X.

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

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

Эта функция полностью поддерживает длинные массивы. Для получения дополнительной информации см. Раздел «Длинные массивы»

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

.

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

  • Эти входные параметры не поддерживаются: 'all', vecdim, и nanflag.

  • The dim входной параметр должен быть константой времени компиляции.

  • Если вы не задаете dim входной параметр, рабочий (или рабочий) размерность может быть различным в сгенерированном коде. В результате могут возникнуть ошибок времени выполнения. Для получения дополнительной информации смотрите Автоматическое ограничение размерности (MATLAB Coder).

Для получения дополнительной информации о генерации кода смотрите Введение в генерацию кода и Рабочий процесс генерации общего кода.

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

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

  • The 'all' и vecdim входные параметры не поддерживаются.

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

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

Понравилась статья? Поделить с друзьями:
  • Как в 1с исправить тариф страховых взносов
  • Как составить количество продуктов на одного человека
  • Как найти искру на нексии
  • Как исправить кредитную историю бесплатно во всех банках
  • Как составить пазл с заданиями