Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СКМ_Массивы.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
179 Кб
Скачать
☆

Variance (дисперсия)

V = var(X) returns the variance of X for vectors. For matrices, var(X)is a row vector containing the variance of each column of X. For N-dimensional arrays, var operates along the first nonsingleton dimension of X. The result V is an unbiased estimator of the variance of the population from which X is drawn, as long as X consists of independent, identically distributed samples.

var normalizes V by N-1 if N>1, where N is the sample size. This is an unbiased estimator of the variance of the population from which X is drawn, as long as X consists of independent, identically distributed samples. For N=1, V is normalized by N.

V = var(X,1) normalizes by N and produces the second moment of the sample about its mean.var(X,0) is equivalent to var(X).

V = var(X,w) computes the variance using the weight vector w. The length of w must equal the length of the dimension over which var operates, and its elements must be nonnegative. The elements of w must be positive. var normalizes w to sum of 1.

Логический поиск нужного элемента. Функция find.

find

Find indices and values of nonzero elements

ind = find(X) locates all nonzero elements of array X, and returns the linear indices of those elements in vector ind. If X is a row vector, then ind is a row vector; otherwise, ind is a column vector. If X contains no nonzero elements or is an empty array, then ind is an empty array.

ind = find(X, k) or ind = find(X, k, 'first') returns at most the first k indices corresponding to the nonzero entries of X. k must be a positive integer, but it can be of any numeric data type.

ind = find(X, k, 'last') returns at most the last k indices corresponding to the nonzero entries of X.

[row,col] = find(X, ...) returns the row and column indices of the nonzero entries in the matrix X. This syntax is especially useful when working with sparse matrices. If X is an N-dimensional array with N > 2, col contains linear indices for the columns. For example, for a 5-by-7-by-3 array X with a nonzero element at X(4,2,3), find returns 4 in row and 16 in col. That is, (7 columns in page 1) + (7 columns in page 2) + (2 columns in page 3) = 16.

[row,col,v] = find(X, ...) returns a column or row vector v of the nonzero entries in X, as well as row and column indices. If X is a logical expression, then v is a logical array. Output v contains the non-zero elements of the logical array obtained by evaluating the expression X. For example,

A= magic(4)

A =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

[r,c,v]= find(A>10);

r', c', v'

ans =

1 2 4 4 1 3

ans =

1 2 2 3 4 4

ans =

1 1 1 1 1 1

Here the returned vector v is a logical array that contains the nonzero elements of N where

N=(A>10)

Example 1

X = [1 0 4 -3 0 0 0 8 6];

indices = find(X)

returns linear indices for the nonzero entries of X.

indices =

1 3 4 8 9

Example 2

You can use a logical expression to define X. For example,

find(X > 2)

returns linear indices corresponding to the entries of X that are greater than 2.

ans = 3 8 9

Example 3

X = [3 2 0; -5 0 7; 0 0 1];

[r,c,v] = find(X)

returns a vector of row indices of the nonzero entries of X

r =

1

2

1

2

3

a vector of column indices of the nonzero entries of X

c =

1

1

2

3

3

and a vector containing the nonzero entries of X.

v =

3

-5

2

7

1

Example 4

The expression

[r,c,v] = find(X>2)

returns a vector of row indices of the nonzero entries of X

r =

1

2

a vector of column indices of the nonzero entries of X

c =

1

3

and a logical array that contains the non zero elements of N where N=(X>2).

v =

1

1

Recall that when you use find on a logical expression, the output vector v does not contain the nonzero entries of the input array. Instead, it contains the nonzero values returned after evaluating the logical expression.

Example 5

x = [11 0 33 0 55]';

find(x)

ans =

1

3

5

find(x == 0)

ans =

2

4

find(0 < x & x < 10*pi)

ans =

1

Example 6

M =

8 1 6

3 5 7

4 9 2

find(M > 3, 4)

returns the indices of the first four entries of M that are greater than 3.

ans =

1

3

5

6

Example 7

If X is a vector of all zeros, find(X) returns an empty matrix. For example,

indices = find([0;0;0])

indices = Empty matrix: 0-by-1

all

Determine whether all array elements are nonzero

B = all(A) tests whether all the elements along various dimensions of an array are nonzero or logical 1 (true).

If A is a vector, all(A) returns logical 1 (true) if all the elements are nonzero and returns logical 0 (false) if one or more elements are zero.

If A is a matrix, all(A) treats the columns of A as vectors, returning a row vector of logical 1's and 0's.

If A is a multidimensional array, all(A) treats the values along the first nonsingleton dimension as vectors, returning a logical condition for each vector.

B = all(A, dim) tests along the dimension of A specified by scalar dim.

, all(A,1) = (1 1 0), all(A,2) = /

any

Determine whether any array elements are nonzero

B = any(A) tests whether any of the elements along various dimensions of an array is a nonzero number or is logical 1 (true). any ignores entries that are NaN (Not a Number).

If A is a vector, any(A) returns logical 1 (true) if any of the elements of A is a nonzero number or is logical 1 (true), and returns logical 0 (false) if all the elements are zero.

If A is a matrix, any(A) treats the columns of A as vectors, returning a row vector of logical 1's and 0's.

If A is a multidimensional array, any(A) treats the values along the first nonsingleton dimension as vectors, returning a logical condition for each vector.

B = any(A,dim) tests along the dimension of A specified by scalar dim.

Example 1 – Reducing a Logical Vector to a Scalar Condition

Given A = [0.53 0.67 0.01 0.38 0.07 0.42 0.69]

then B = (A < 0.5) returns logical 1 (true) only where A is less than one half:

0 0 1 1 1 1 0

The any function reduces such a vector of logical conditions to a single condition. In this case, any(B) yields logical 1. This makes any particularly useful in if statements:

if any(A < 0.5)do something

end

where code is executed depending on a single condition, not a vector of possibly conflicting conditions.

Example 2– Reducing a Logical Matrix to a Scalar Condition

Applying the any function twice to a matrix, as in any(any(A)), always reduces it to a scalar condition.

any(any(eye(3)))

ans = 1

Example 3 – Testing Arrays of Any Dimension

You can use the following type of statement on an array of any dimensions. This example tests a 3-D array to see if any of its elements are greater than 3:

x = rand(3,7,5) * 5;

any(x(:) > 3)

ans =

1

or less than zero:

any(x(:) < 0)

ans = 0