has

Testa se uma expressão simbólica contém uma dada subexpressão.

Categoria: Symbolic Computations in MATLAB > Symbolic Variables, Expressions, Functions, and Preferences

Sintaxe

tf = has(expr, sub)

Retorna true quando sub ocorre dentro de expr.

Descrição

has pesquisa a árvore inteira da expressão, então has(x^2 + y, y) é verdadeiro mesmo que y seja apenas uma parcela de uma soma. Compara estrutura, não valor, então has(2*x, x) é verdadeiro e has(x^2, 4) é falso.

Um uso típico é decidir se uma expressão ainda depende de uma variável antes de derivar ou resolver em relação a ela.

Argumentos de entrada

expr
Expressão simbólica escalar a pesquisar.
sub
Variável ou subexpressão a procurar.

Argumentos de saída

tf
Escalar lógico.

Exemplo

A expressão depende de uma variável

syms x y
has(x^2 + y, y)
has(sin(x)*2, y)
has(sin(x)*2, sin(x))
Saída
ans = logical
   1
ans = logical
   0
ans = logical
   1

Observações

No MatLivre sub deve ser uma expressão simbólica escalar; passar um array simbólico como sub gera erro. expr pode ser um array.

Veja também

hasSymType children symvar isequal findSymType