As respostas dadas estão todas corretas. Eu só queria elaborar uma observação gnovice sobre o teste de ponto flutuante. Ao comparar números de ponto flutuante para igualdade, é necessário usar um valor de tolerância. Dois tipos de comparações de tolerância são comumente usados: tolerância absoluta e tolerância relativa. ( origem ) Uma comparação de tolerância absoluta de a e b se parece com: |a-b| < tolUma comparação de tolerância relativa é semelhante a: |a-b| < tol*max(|a|,|b|) + tol_floorVocê pode implementar os dois acima como funções anônimas: Então você pode usá-los como: %# let x and y be scalars/vectors/matrices of same size x == y isequalAbs(x, y, 1e-6) isequalRel(x, y, 1e-6)
Eu tenho uma matriz de dados, com anos não-bissextos, e em que matriz foi separada: Dados = [ano mês dia dados1 dados2]; Tamanho = 14965 linhas e 5 colunas E eu tenho um array parâmetros, para comparar com "dados1" e "dados2", com tamanho 365 linhas e 2 colunas, onde na coluna 1 tenho o parâmetro x1 para comparar com "dados1" e na coluna 2 tenho x2 para comparar Com "dados2". Parâmetros = [x1 x2] O parâmetro x1 deve ser comparado a "dados1" diariamente, onde eu deveria analisar se "dados1"> x1. O mesmo deve ser feito para "dados2" em relação a x2. Estou tendo problemas para criar um método ou um loop para fazer essas comparações diárias e de todos os anos da matriz "Dados". Alguém pode me ajudar? |