Baixe o app para aproveitar ainda mais
Prévia do material em texto
Relatório Aula 01 Universidade Federal de São João del Rei Campus Alto Paraopeba - CAP Engenharia de Telecomunicações Diego Santos Seabra Ouro Branco 2013 Relatório Aula 01 Relatório apresentado como exigência do professor Gustavo Fernandes em En- genharia de Telecomunicações da Univer- sidade Federal de São João del Rei. Diego Santos Seabra Ouro Branco 2013 SUMÁRIO 1 INTRODUÇÃO.................................................................................................................. 6 2 EXERCÍCIO 1................................................................................................................... 7 2.1 which........................................................................................................................... 7 2.2 pcode.......................................................................................................................... 7 2.3 inmem......................................................................................................................... 7 2.4 mex............................................................................................................................. 8 2.5 editpath....................................................................................................................... 8 2.6 getenv......................................................................................................................... 9 2.7 unix.............................................................................................................................. 9 2.8 vms.............................................................................................................................. 9 2.9 realmax..................................................................................................................... 10 2.10 realmin.................................................................................................................... 10 2.11 clock........................................................................................................................ 10 2.12 date......................................................................................................................... 11 2.13 etime....................................................................................................................... 11 2.14 tic............................................................................................................................. 12 2.15 toc........................................................................................................................... 12 3 EXERCÍCIO 2................................................................................................................. 13 3.1 ver............................................................................................................................. 13 3.2 version...................................................................................................................... 13 3.3 demo......................................................................................................................... 13 3.4 whatsnew................................................................................................................. 13 3.5 bench........................................................................................................................ 14 3.6 who............................................................................................................................ 14 3.7 whos.......................................................................................................................... 14 3.8 clear.......................................................................................................................... 14 3.9 clc.............................................................................................................................. 14 3.10 save........................................................................................................................ 15 3.11 load......................................................................................................................... 15 3.12 quit.......................................................................................................................... 15 3.13 what........................................................................................................................ 15 3.14 type......................................................................................................................... 16 3.15 edit.......................................................................................................................... 16 3.16 open........................................................................................................................ 16 3.17 lookfor..................................................................................................................... 16 3.18 path......................................................................................................................... 17 3.19 addpath.................................................................................................................. 17 3.20 rmpath.................................................................................................................... 17 3.21 echo........................................................................................................................ 17 3.22 diary........................................................................................................................ 17 3.23 format..................................................................................................................... 18 3.24 cd............................................................................................................................ 18 3.25 pwd......................................................................................................................... 18 3.26 dir............................................................................................................................ 18 3.27 delete...................................................................................................................... 18 3.28 dos.......................................................................................................................... 19 3.29 computer................................................................................................................ 19 3.30 web......................................................................................................................... 19 4 DESCRIÇÕES................................................................................................................ 20 5 CONCLUSÃO................................................................................................................. 22 REFERÊNCIAS................................................................................................................. 23 6 1 INTRODUÇÃO Este relatório tem como objetivo apresentar as funções básicas do MATLAB em seu aspecto pleno e prático. Como será visto mais adiante, os comandos aqui apresentados se mostram úteis a ponto de facilitar o trabalho dos usuários pois ao mesmo tempo que o usuário tem a possibilidade de digitar suas linhas de código ele pode se utilizar destes comandos para uma forma mais eficiente de trabalhar. Também será visto comandos diversificados que ajudam em outras partes de criações de funções, tais como procurar uma string em todos os arquivos .m do MATLAB. A seguir serão abordados dois exercícios propostos pelo professor, sendo o primeiroanálise de comandos diversos (mais avançados e menos básicos) e o segundo exemplos práticos de comandos mais básicos vistos em aula. 7 2 EXERCÍCIO 1 Abaixo serão apresentados comandos diversos NÃO vistos em aula, com seus exemplos. 2.1 which Mostra o diretório de funções e arquivos do MATLAB. Ex.: which ans (retorna o diretório onde a variável ans está salva). >> which math C:\Program Files\MATLAB\R2013a\toolbox\mbc\mbcexpr\@cgslparser\math.m % cgslparser method 2.2 pcode Encripta o código de uma função e cria um arquivo .p de encriptação, gerando assim um arquivo "executável" do MATLAB. (Lembrando que para o teste desse comando, foi-se necessário o comando edit fun1 que criou a função de teste, vide Descrições) Ex.: pcode fun1 (onde fun1 é uma função pré-criada qualquer) >> pcode fun1 >> dir . .. fun1.m fun1.p 2.3 inmem Mostra uma lista de funções, arquivos MEX e classes de arquivos na memória do MATLAB. 8 Ex.: >> inmem ans = 'matlabrc' 'pathdef' 'userpath' 'ispc' 'filesep' 'pwd' 'usejava' 'initializeMATLABRoot' 'opaque.char' 'opaque.toChar' 2.4 mex Compila uma função mex de um código escrito em C++ ou Fortran Ex.: Compilando o arquivo yprime.c: >>mex yprime.c 2.5 editpath COMANDO NÃO EXISTENTE NO MATLAB R2013a, entretanto o comando edit path abre o editor de funções e edita a função embutida path, o que é útil quando se quer editar esta função para um fim específico, como por exemplo, salvar automaticamente a cada x minutos. 9 2.6 getenv Ao contrário do lookfor que procura em todos os arquivos .m do MATLAB pela variável (ou palavra) procurada, o comando getenv retorna a variável de ambiente solicitada pelo usuário como no exemplo seguinte: Ex.: getenv ('NOME'), onde NOME é uma string de texto, procura dentro do sistema operacional uma lista com a string solicitada na forma NOME=VALOR. Se encontrada, o MATLAB retorna um valor de string, se não encontrada o MATLAB retorna uma matriz vazia. 2.7 unix Executa comandos do unix especificado por parêntesis (retornando o status como falso ou verdadeiro, 0 ou 1) Ex.: >>command = 'cd ..'; >>[status,cmdout] = unix(command); >>status status = 0 2.8 vms COMANDO NÃO EXISTENTE NO MATLAB R2013a (de acordo com o HELP). Entretanto há uma plataforma de processamento em computação com o nome OpenVMS (Virtual Machine System) que é o nome de uma tecnologia top de linha entre usuário e sistema - vide Descrições. Neste caso é o MATLAB que fica instalado em uma máquina que possui o sistema 10 OpenVMS e não o contrário (o manual para esta instalação pode ser encontrado nas Referências) e executa as mesmas funções do MATLAB como em um computador normal, porém com mais funcionalidades pertinentes a este tipo de sistema e processamento. 2.9 realmax Retorna o número finito máximo do matlab (com precisão dupla de IEEE, vide Descrições). Ex.: >> realmax ans = 1.7977e+308 2.10 realmin Retorna o número finito mínimo do matlab (com precisão dupla de IEEE, vide o capítulo Descrições). Ex.: >> realmin ans = 2.2251e-308 2.11 clock Retorna a data atual e o horário como um vetor de números decimais. Ex.: >> clock ans = 11 1.0e+03 * 2.0130 0.0100 0.0170 0.0110 0.0150 0.0135 Neste caso a data era: 17/10/2013,11:15. 2.12 date Retorna a data atual. Ex.: >> date ans = 17-Oct-2013 2.13 etime Retorna o tempo passado, ou seja a diferença de tempo entre dois vetores. Ex.: >> t1=clock t1 = 1.0e+03 * 2.0130 0.0100 0.0170 0.0110 0.0300 0.0405 >> str = 'March 28, 2014 11:51:00'; t2 = datevec(str,'mmmm dd, yyyy HH:MM:SS') t2 = 2014 3 28 11 51 0 >> etime (t1,t2) ans = -1.3998e+07 12 2.14 tic Inicia um cronômetro. Ex.: Iniciado às 11:18. 2.15 toc Retorna os segundos passados pelo cronômetro iniciado pelo comando tic. Ex.: >> toc Elapsed time is 400.770770 seconds. Parado às 11:24 13 3 EXERCÍCIO 2 Para os comandos vistos em aula, abaixo se encontram exemplos práticos de como utilizá-los. 3.1 ver Para sabermos quais toolboxes possuímos em nosso MATLAB de forma rápida utilizamos o comando ver. 3.2 version Para adquirirmos um toolbox especifico necessitamos saber qual versão é compatível com o MATLAB que possuímos, então utilizamos o comando version para fazer essa verificação de forma rápida e prática. 3.3 demo Quando estamos desenvolvendo uma linha de código ou uma função, muitas vezes necessitamos verificar como programas similares foram desenvolvidos, necessitando assim, de um exemplo. Para tanto o comando demo nos permite visualizar códigos de "programas" e funções específicas para analisarmos e não termos que "inventar novamente a roda", acelerando o processo de desenvolvimento. 3.4 whatsnew 14 Útil para ver o que foi alterado em novas versões do MATLAB e quais são suas novas "capacidades". 3.5 bench É útil para verificar se uma aplicação que exige alto desempenho computacional irá rodar com tranquilidade dentro do ambiente do sistema operacional utilizado. 3.6 who Útil para verificar as variáveis utilizadas quando há um grande número de variáveis definidas e não conseguimos "encontrá-las" através de outros menus. 3.7 whos Útil para verificar as variáveis utilizadas com dimensões e memória que cada uma ocupa. 3.8 clear Nos ajuda de forma rápida e prática a limpar todas as variáveis armazenadas no MATLAB. Isso se torna realmente útil quando temos um número muito grande de variáveis em nosso workspace "poluindo" a tela. Deste modo, por exemplo, podemos apagar todas as variáveis ao mesmo tempo ao invés de ter que apagá-las uma a uma. 3.9 clc 15 É muito útil quando necessitamos apagar a tela para não deixá-la "poluída". Tão útil quanto o comando cls do DOS. 3.10 save Se torna muito útil quando necessitamos salvar o workspace de forma rápida e efetiva ao se escrever linhas de código. Ou seja, ao invés de se pesquisar um local para salvar o arquivo, pode-se escrever as funções no mesmo local e simplesmente utilizar o comando save, fazendo com que o trabalho seja mais eficiente e menos "doloroso". 3.11 load Possui exatamente a mesma utilidade que o comando save, porém para se carregar um arquivo no worspace. 3.12 quit Extremamente útil quando necessitamos sair de uma função que entrou em loop e não conseguimos parar esta função pelos meios comuns. Também pode ser utilizado o atalho nativo do Linux (Ctrl + C). 3.13 what Se torna extremamente útil quando necessitamos de ver todos os arquivos que estão na pasta que estamos trabalhando. 16 3.14 type Extremamente útil para analisar uma função sem sair de sua "área de trabalho". Deve-se lembrar que, ao contrário do comando edit, o comando type não permite editar as funções dentro da "área de trabalho". 3.15 edit Muitas vezes, gostaríamos de implementar uma função ou um comentário a uma linha de código de um determinado programa e, na maioria das vezes isso não é possível devido ao "código-fechado". No MATLAB, certas funções podem ser editadas através do comando edit, sendo possível utilizar funções e códigos prontos e aprimorá-los com um toque pessoal para um fim específico. Isso se torna realmente útil quando necessitamos fazer modificações para que as funções ocorram de forma diferente da original, com propósitos mais específicos para o trabalho que necessitamos. 3.16 open Se torna muito útil quando necessitamos abrir o workspace de forma rápida e efetiva ao se escrever linhas de código. Ou seja, ao invés de se pesquisar um local para abrir o arquivo desejado, pode-se simplesmente usar o comando open para abrir arquivosjá contidos na pasta em que se está trabalhando". 3.17 lookfor Útil para pesquisar rapidamente palavras e variáveis em todos os arquivos .m do MATLAB. Isso facilita em muito o trabalho a ser feito pois evita do usuário se perder 17 em pastas procurando arquivos os quais ele já sabe o nome. 3.18 path Útil para verificar quais pastas o MATLAB utilizada para guardar seus arquivos. 3.19 addpath Útil para adicionar pastas pessoais e de uso frequente às pastas do sistema. 3.20 rmpath Útil para remover pastas pessoais e não mais utilizadas anteriormente adicionadas às pastas do sistema. 3.21 echo Útil para escrever funções em que não se quer demonstrar os resultados para o usuário final. Ou seja, o programador da função tem controle total do que é mostrado e do que não é. 3.22 diary Útil para recomeçar o trabalho "de onde parou". Ou seja, o processo de programação se torna mais intuitivo ao se continuar com uma linha de pensamento 18 anteriormente já definida. 3.23 format Útil para mudar o estilo de visualização numérica, podendo inclusive apresentar resultados para o usuário final de forma diferente do original calculado. 3.24 cd Útil para navegar nas pastas através de comandos, o que facilita o processo de escrita de linhas de código. 3.25 pwd Útil para se localizar ao escrever funções e códigos. Ou seja, acaso o usuário se perca dentro de pastas este comando retorna a pasta em que o mesmo se encontra. 3.26 dir Útil para verificar quantos e quais arquivos se encontram na pasta em que o usuário está trabalhando. 3.27 delete Útil para deletar facilmente arquivos não desejados. Ou seja, o fluxo de trabalho e 19 de programação através de comandos ajuda ao usuário a não perder o que se encontra fazendo. 3.28 dos Útil para utilizar comandos conhecidos do DOS para o MATLAB. 3.29 computer Útil para localizar qual computador o usuário está utilizando. 3.30 web Útil para verificar páginas da Internet enquanto produz seus códigos. Neste caso, o usuário pode tirar dúvidas de comandos e até integrar comandos com a web, produzindo funções que mais de um usuário pode alterar, por exemplo. 20 4 DESCRIÇÕES Função fun1: //Código de fun1// a= 2 + 4; b =2+3; a+b Definição de OpenVMS: OpenVMS é um sistema operacional (SO) multiusuário, multiprocessado que utiliza memória virtual e foi projetado para processamento em lote (batch), em tempo real e processamento transacional. O sistema oferece elevada disponibilidade através de cluster, ou seja, a habilidade para distribuir em múltiplas máquinas físicas a carga do sistema. Isto permite que o sistema seja "tolerante a desastre". VMS inclui também um sistema de prioridade de processos que permite que o processo em tempo real funcione sem barreiras, bloqueios ou interferências. Características: -> Trabalho em rede integrado (originalmente DECnet e mais tarde, TCP/IP) -> Simétrico, assimétrico, e NUMA multiprocessing, incluindo clustering -> Distribuído sistemas de arquivos (Files-11) -> Banco de dados integrado como RMS11 e bases de dados mergulhadas incluindo Rdb -> Sustentação para múltiplas linguagens de programação -> Linguagem de comando shell (Linguagem de comando DIGITAL) -> Hardware particionado para multiprocessos -> Elevado - em nível da segurança 21 Precisão Dupla de IEEE (Double Precision): In computing, double precision is a computer numbering format that occupies two adjacent storage locations in computer memory. A double precision number, sometimes simply called a double, may be defined to be an integer, fixed point, or floating point. Modern computers with 32-bit storage locations use two to store a 64-bit double precision number (a single storage location can hold a single precision number). Double precision floating point is an IEEE 754 standard for encoding binary or decimal floating point numbers in 8 bytes. Double precision binary floating-point format Double precision binary floating-point is a commonly used format on PCs, due to its wider range over single precision floating point, even if at a performance and bandwidth cost. As with single precision floating point format, it lacks precision on integer numbers when compared with an integer format of the same size. It is commonly known simply as double. The IEEE 754 standard defines a double as: Sign bit: 1 bit Exponent width: 11 bits Significand precision: 52 bits (53 implicit) The format is written with the significand having an implicit integer bit of value 1, unless the written exponent is all zeros. With the 52 bits of the fraction significand appearing in the memory format, the total precision is therefore 53 bits (approximately 16 decimal digits, 53\log_{10}(2) \approx 15.955). 22 5 CONCLUSÃO Como visto, o MATLAB possui uma capacidade de processamento de dados extremamente vasta e útil para as mais diversas áreas (independente de qual área a ser aplicado, podendo ser efetivo em Engenharia, Biologia, Física, Mecânica e etc), nas quais é possível utilizar toolboxes - que são ferramentas importantes para o desenvolvimento de funções específicas - e comandos especiais para cada tipo de processamento a que o usuário necessite. Sendo assim, todas as ferramentas nos auxiliam para uma linha de pensamento mais fluida e mais aberta, possibilitando a inovação de várias funções diferentes (sem ter de "reinventar a roda" e só inovar funções já existentes). Então, temos uma "bomba" de processamento de dados digitais em nossa mão que só necessita de ser aprendida para ter seu potencial máximo descoberto, assim como outros fizeram para fins de pesquisa, profissionais e pessoais. 23 REFERÊNCIAS Can I use MATLAB on VMS platform?. Disponível em: <http://www.mathworks.com/support/solutions/en/data/1-1RLBE2/?product=ML&solu tion=1-1RLBE2> Acesso em: 17 out. 2013 Double-precision Floating-point Numbers. Disponível em: <https://ece.uwaterloo.ca/~dwharder/NumericalAnalysis/02Numerics/Double/> Acesso em: 17 out. 2013 getenv - Enviroment Variable. Disponível em: <http://www.mathworks.com/help/matlab/ref/getenv.html> Acesso em: 17 out. 2013 getenv (Matlab function). Disponível em: <http://help.scilab.org/docs/5.3.3/en_US/m2sci_getenv.html> Acesso em: 17 out. 2013 IEEE Double precision. Disponível em: <http://www.princeton.edu/~achaney/tmve/wiki100k/docs/Double_precision.html> Acesso em: 17 out. 2013 Manual MATLAB fo OpenVMS. Disponível em: <http://www.iri.tudelft.nl/~sysdoc/MATLAB52/PDF_DOC/MATLAB/RN_VMS.PDF> Acesso em: 17 out. 2013 MATLABCommands List. Disponível em: <http://ctms.engin.umich.edu/CTMS/index.php?aux=Index_Commands> Acesso em: 17 out. 2013 OpenVMS. Disponível em: <http://www.openvms.org/> Acesso em: 17 out. 2013 Virtual Memory System. Disponível em: <http://www.freebsd.org/doc/en/books/arch-handbook/vm.html> Acesso em: 17 out. 2013 VMS (Virtual Memory System). Disponível em: <http://searchcio-midmarket.techtarget.com/definition/VMS> Acesso em: 17 out. 2013
Compartilhar