Num raio area circulo 3 raio264575 area21991

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

, num, raio, area) Circulo 3: raio=2.64575, area=21.991 >> sprintf(’Circulo%2d: raio=%.5f, area=%.5g’... , num, raio, pi*raioˆ2) ans = Circulo 3: raio=2.64575, area=21.991 >> disp(class(ans)) char Note que a saída de sprintf ocorre em uma variável (string), permitindo que haja tratamento deste resultado posteriormente. Por exemplo: inserir dados em um gráfico, criar nomes para arquivos, entre outros. Introduc ¸ ˜ ao ao MATLAB – p.15/28
Image of page 15

Subscribe to view the full document.

Conversão de strings para números str 2 num : significado usual, help on line para mais detalhes; >> S = num2str(pi*eye(2)), N = str2num(S) S = N = 3.1416 0 3.1416 0 0 3.1416 0 3.1416 >> whos Name Size Bytes Class N 2x2 32 double array S 2x18 72 char array Grand total is 40 elements using 104 bytes >> pi*eye(2) - N % perda de precis ˜ ao ans = 1.0e-05 * -0.7346 0 0 -0.7346 Introduc ¸ ˜ ao ao MATLAB – p.16/28
Image of page 16
Conversão de strings para números A função str 2 num permite que usemos expressões nas strings, mas não permite o uso de variáveis. >> r = 10; >> S = ’[2*pi*r pi 1+2i]’ S = [2*pi*r pi 1+2i] >> str2num(S) % com o r n ˜ ao funciona ans = [] >> S = ’[2*pi*10 pi 1+2i]’; >> disp(str2num(S)) 62.8319 3.1416 1.0000 + 2.0000i Introduc ¸ ˜ ao ao MATLAB – p.17/28
Image of page 17

Subscribe to view the full document.

Conversão de strings para números str 2 double : quando a conversão exige um valor único de precisão dupla. Costuma ser mais rápida, mas tem um escopo de atuação mais limitado. >> str2double(’inf’) % converte o infinito ans = Inf >> disp(class(ans)) double >> str2double(’1+2i’) % OK com complexos. ans = 1.0000 + 2.0000i >> disp(class(ans)) % N ˜ ao com vari ´ aveis e exp. double >> str2double(’pi’) ans = NaN Introduc ¸ ˜ ao ao MATLAB – p.18/28
Image of page 18
Função sscanf Esta função lê os dados de uma string seguindo um formato especificado. Veremos apenas alguns exemplos, veja help on line para maiores detalhes. >> V = version V = 6.0.0.88 (R12) >> sscanf(V,’%f’) >> disp(sscanf(V,’%f’, 2)) ans = 6 6.0000 0 0 0.8800 >> disp(sscanf(V,’%d’)) 6 >> disp(sscanf(V,’%s’)) %remove espac ¸o em branco 6.0.0.88(R12) Introduc ¸ ˜ ao ao MATLAB – p.19/28
Image of page 19

Subscribe to view the full document.

Execução de strings Em algumas situações pode ser necessário ’executar’ uma string como se fosse uma sentença qualquer do MATLAB . Isto é, obviamente, muito mais do que fazem str 2 num e str 2 double ; A execução de strings é feita pelas funções eval e evalc . Estas recorrem a todo o interpretador do MATLAB para avaliar qualquer string que respeite a sintaxe do MATLAB . Consequentemente estas funções exigem muito do computador; A função feval é uma função para execução de strings cujo escopo de atuação é bem mais restrito e portanto não recorre ao interpretador do MATLAB . Em virtude disso esta é bem mais rápida que as acima. Introduc ¸ ˜ ao ao MATLAB – p.20/28
Image of page 20
A função eval >>[triang(1:3).tipo] = deal(’ret’,’isosc’,’desc’); >>[triang.center]=deal(zeros(1,2),ones(1,2),rand(1,2)); >> names = fieldnames(triang); >> S = sprintf(’t = triang(%d).%s’,1,names(1)) ??? Error using ==> sprintf Function ’sprintf’ not defined for variables of class ’cell’ % precisamos de uma string e n ˜ ao de uma c ´ elula >> S = sprintf(’t = triang(%d).%s’,1,names { 1 } ) S = t = triang(1).tipo >> eval(S) t = ret >>eval(sprintf(’t = triang(%d).%s’,3,names { 1 } )) t = desc Introduc ¸ ˜ ao ao MATLAB – p.21/28
Image of page 21

Subscribe to view the full document.

Image of page 22
  • 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