A função eval try catch quando ocorre um erro na

This preview shows page 22 - 28 out of 28 pages.

A função eval ( try, catch ) Quando ocorre um erro na execução da string, o MATLAB emite uma mensagem de erro e nada é atribuído à variável de saída; É possível controlar o que ocorre na execução da string usando a opção try-catch . A sintaxe é eval ( try, catch ) . A primeira parte ( try ) é a string que será avaliada, a segunda parte ( catch ) contém uma outra string que apenas será executada se ocorrer um erro na execução da primeira parte. >>eval(sprintf(’t=circle(%d).%s’,3,names { 1 } ),’NaN’) t = NaN Introduc ¸ ˜ ao ao MATLAB – p.22/28
Image of page 22

Subscribe to view the full document.

A função eval ( try, catch ) - exemplo >> eval(sprintf(’t =TR(%d).%s’,3,names { 1 } ),... ’t =NaN;Flag=1;’) >> >> t,Flag t = NaN Flag = 1 >>lasterr ans = Undefined variable ’TR’. Não ocorre saída na execução da função eval porque a parte catch contém ’;’ nos seus comandos; A função lasterr armazena a string que descreve o erro que ocorreu na tentativa de executar a parte try . Introduc ¸ ˜ ao ao MATLAB – p.23/28
Image of page 23
A função evalc A entrada e atuação desta função são exatamente as mesmas que as da função eval . A diferença reside na saída: a função evalc retorna o resultado como uma string de caracteres. Este recurso surgiu da necessidade de exibir os resultados como um texto em um outra janela, por exemplo uma GUI. >> eval(sprintf(’t =triang(%d).%s’,3,names { 1 } )) ans = t = desc >>disp(class(ans)) char Introduc ¸ ˜ ao ao MATLAB – p.24/28
Image of page 24

Subscribe to view the full document.

A função feval Função para execução de strings que são nomes de funções. Isto é, esta função assume que a string seja um nome de função válido (desta forma não recorrendo ao interpretador) seguida de seus argumentos. >> nameF = ’cos’; >> x = linspace(0,pi,5); >> y = feval(nameF,x) % y = nameF(x) >> y = 0 0.70711 6.1232e-017 -0.70711 -1 O uso desta função não se limita a funções de argumentos únicos, tanto de entrada, quanto de saída. Sua sintaxe geral é: [x,y,z,...]=feval(’func’,a,b,c,...) Introduc ¸ ˜ ao ao MATLAB – p.25/28
Image of page 25
Vetores de células com strings Vetores de células são usados para contornar a exigência de que em um vetor de caracteres com múltiplas linhas, estas precisem ter o mesmo número de colunas. Este é o uso mais comum de vetores de células. Para isso construímos um vetor de células em que cada elemento do vetor é uma string (de tamanhos quaisquer). >> clear all >> V = { ’->Elemento 11’ ’->El. 12’ ;... ’->Elemento 21’ ’->Elemento 22’ } V = ’->Elemento 11’ ’->El. 12’ ’->Elemento 21’ ’->Elemento 22’ >> disp(class(V)) cell Introduc ¸ ˜ ao ao MATLAB – p.26/28
Image of page 26

Subscribe to view the full document.

Funções úteis iscellstr ( V ) : retorna 1 se todas as células do vetor de células são strings e 0 caso contrário. char e strvcat : convertem um vetor de células, cujas células são strings, em um vetor de strings. >> V = { ’->El. 11’ ’->El. 12’ ; ’->E21’ ’’ } V = ’->El. 11’ ’->El. 12’ ’->E21’ ’’ >> S1 = char(V), S2 = strvcat(V) S1 = S2 = ->El. 11 ->El. 11 ->E21 ->E21 ->El. 12 ->El. 12 >> whos Name Size Bytes Class S1 4x8 64 char array S2 4x8 64 char array V 2x2 410 cell array Grand total is 89 elements using 538 bytes Introduc ¸ ˜ ao ao MATLAB – p.27/28
Image of page 27
Image of page 28
  • Spring '14
  • matlab, Caractere, Introduc¸ao, Cadeia de caracteres

{[ snackBarMessage ]}

What students are saying

  • Left Quote Icon

    As a current student on this bumpy collegiate pathway, I stumbled upon Course Hero, where I can find study resources for nearly all my courses, get online help from tutors 24/7, and even share my old projects, papers, and lecture notes with other students.

    Student Picture

    Kiran Temple University Fox School of Business ‘17, Course Hero Intern

  • Left Quote Icon

    I cannot even describe how much Course Hero helped me this summer. It’s truly become something I can always rely on and help me. In the end, I was not only able to survive summer classes, but I was able to thrive thanks to Course Hero.

    Student Picture

    Dana University of Pennsylvania ‘17, Course Hero Intern

  • Left Quote Icon

    The ability to access any university’s resources through Course Hero proved invaluable in my case. I was behind on Tulane coursework and actually used UCLA’s materials to help me move forward and get everything together on time.

    Student Picture

    Jill Tulane University ‘16, Course Hero Intern