>> M=[4 5 6 8 9 2];
>> fliplr(M)
ans =
2 9 8 6 5 4
Еще полезные функции all, any и find и их использование
Функция all (вектор) возвращает 1 (" истина "), если все элементы вектора не равны нулю, или 0 в противном случае (то есть в случае, если хотя бы один элемент нулевой).
Функция any действует противоположным образом. Она возвращает нуль в случае, когда все элементы вектора нулевые, и возвращает единицу, когда хотя бы один элемент ненулевой.
>> V=[0 0 0 0 0];
>> all(V)
ans =
0
>> any(V)
ans =
0
>> V=[0 0 0 0 7];
>> any(V)
ans =
1
Можно задать условие, например:
Все ли элементы вектора больше 1
>>V=[2 3 4 5];
>> all(V>1)
ans =
1 %ответ да
В случае применения к матрицам обе эти функции обрабатывают матрицу в порядке следования по столбцам и рассматривает их как вектора. Например,
>> X = [ 1 2 0; 0 3 0; 7 4 0 ]
X =
1 2 0
0 3 0
7 4 0
>> any(X)
ans =
1 1 0
>> all(X)
ans =
0 1 0
Функция find в качестве аргумента может принимать некоторое условие и возвращает номера (индексы) элементов равных условию. Если условия нет, то возвращает индексы элементов не равных 0. Например,
|
|
Если задано условие, то возвращает индексы элементов, отвечающих условию.
Для вектора
>> Y=[4 0 9 0 -3 0 ]
Y =
4 0 9 0 -3 0
>> find(Y) %возвращает вектор из индексов ненулевых элементов.
ans =
1 3 5
Получить индексы элементов не равные 2
>> A=[3 5 2 6 2 9]
A =
3 5 2 6 2 9
>> find(A==2)
ans =
3 5
Для матриц функция find возвращает 2 вектора индексов. Каждый вектор получается обработкой отдельного столбца матрицы. Например, для матрицы
>> A = [ 1 0 3; 0 4 5; 6 7 8]
A =
1 0 3
0 4 5
6 7 8
>> [V1 V2]=find(A)
V1 =
1
3
2
3
1
2
3
V2 =
1
1
2
2
3
3
3
Возвращает вектор - столбцы V1 и V2.
Вектор V1 содержит номера строк отличных от нуля элементов матрицы A. Причём, матрица просматривается по столбцам (сначала — первый столбец, затем — второй и т.д.).
Вектор столбец V2 содержит номера столбцов ненулевых элементов.
Получить и ндексы элементов в матрице А> 0
>> find(A>0)
ans =
1
3
5
6
7
8
9