Como encontrar um valor em uma matriz no Octave
Neste guia, vou explicar como procurar e encontrar dados em uma matriz usando a função find() no Octave.
find(X,N,D)
A função find() tem três parâmetros:
- X
O primeiro parâmetro X é a matriz onde procurar. É um parâmetro obrigatório. - N
É o número máximo de itens que você deseja obter da pesquisa. A pesquisa para após N resultados. - D
É a direção da pesquisa. Você pode digitar "first" para pesquisar do primeiro ao último elemento ou "last" para pesquisar do último ao primeiro elemento do índice. Por padrão, é "first".
Esta função extrai os índices dos elementos que correspondem à pesquisa na matriz.
Nota. A função find() retorna os índices das matrizes em ordem crescente. Não na ordem de extração.
Vou dar um exemplo prático.
Crie uma matriz e atribua-a à variável V
>> V = [ 1 0 2 0 4 0 4 ]
V =
1 0 2 0 4 0 4
Há sete elementos na matriz
Não se esqueça de que o primeiro elemento de uma matriz tem índice zero no Octave

Digite find(V) para encontrar os elementos não nulos
>> find(V)
ans =
1 3 5 7
A função find() exibe a posição do índice dos elementos da matriz com valores diferentes de zero, ou seja, V[1], V[3], V[5] e V[7].

Os resultados são as posições dos elementos no índice da matriz. Eles não são os valores dos elementos.
Nota. A função find() retorna os mesmos resultados mesmo quando a matriz está disposta em uma coluna. a função find()

Digite find(V,1) para obter apenas um resultado da pesquisa.
>> find(V,1)
ans = 1
A função retorna a posição do primeiro elemento não nulo na matriz, ou seja, V[1]

Agora, digite find(V,1,"last") para pesquisar da direita para a esquerda.
>> find(V,1,"last")
ans = 7
O resultado é o elemento V[7] porque é o primeiro com valor não nulo V[7]=4 começando pela direita.

Se você quiser encontrar elementos iguais a zero, digite uma negação antes do nome da matriz.
Digite find(~V)
>> find(~V)
ans =
2 4 6
A pesquisa extrai as posições no índice dos elementos com valor igual a zero.
Os resultados são V[2], V[4] e V[6].

Digite find(V>2) para encontrar apenas os elementos da matriz com valores maiores que dois
>> find(V>2)
ans =
5 7
A função encontra os elementos V[5] e V[7] da matriz

Quando a pesquisa não produz resultados, a função find() retorna um conjunto vazio.
Por exemplo, se você digitar find(V>5), o resultado será uma matriz vazia.
>> find(V>5)
ans = [ ](1x0)
Digite find(V<=3 & V>=1) para procurar elementos da matriz com valor entre 1 e 3
>> find(V<=3 & V>=1)
ans =
1 3
A pesquisa extrai os elementos V[1] e V[3] da matriz

Como fazer uma pesquisa em uma matriz multidimensional?
Quando a matriz é multidimensional (por exemplo, uma matriz), a função find procura os dados coluna por coluna.
Por exemplo, crie uma matriz com três linhas e três colunas.
>> M=[1 0 1; 0 1 0; 1 0 1]
M =
1 0 1
0 1 0
1 0 1
A matriz é uma matriz bidimensional
$$ \begin{pmatrix} 1 & 0 & 1 \\ 0 & 1 & 0 \\ 1 & 0 & 1 \end{pmatrix} $$
Digite find(M) para pesquisar elementos com valor diferente de zero
>> find(M)
ans =
1
3
5
7
9
A função retorna as posições dos elementos no índice como se a matriz fosse unidimensional, iterando os elementos em coluna.
Por exemplo, os índices 1 e 3 são os dois primeiros elementos não nulos encontrados na primeira coluna.

O índice 5 é o elemento não nulo na segunda coluna.
É o quinto elemento analisado pela pesquisa.

Os índices 7 e 9 são os elementos não nulos na terceira coluna.
Eles são, respectivamente, o sétimo e o nono elemento na sequência de elementos analisados pela pesquisa.

Se você quiser obter como resultado as coordenadas (linha; coluna) dos elementos na matriz, você precisa usar outro comando.
Digite [row, col, v]=find(M)
>> [row,col]=find(M)
row =
1
3
2
1
3
col =
1
1
2
3
3
v =
1
1
1
1
1
Neste caso, a função extrai três matrizes:
- a primeira matriz (row) contém os números das linhas
- a segunda matriz (col) contém os números das colunas
- a terceira matriz (v) contém os valores dos elementos
Por exemplo, para exibir as coordenadas do primeiro resultado da pesquisa, digite row(1), col(1)
>> row(1),col(1)
ans = 1
ans = 1
O primeiro elemento não nulo da matriz é encontrado nas coordenadas (1,1), ou seja, na primeira linha e primeira coluna da matriz.

Para ver as coordenadas do segundo resultado, digite row(2), col(2)
>> row(2),col(2)
ans = 3
ans = 1
O segundo elemento com valor diferente de zero é encontrado nas coordenadas (3,1), ou seja, na terceira linha e primeira coluna da matriz.

Desta forma, você pode obter a posição exata dos elementos na matriz.