MATLAB: diferenças entre revisões
Conteúdo apagado Conteúdo adicionado
m Correção de data |
|||
(Há 26 revisões intermédias de 20 utilizadores que não estão a ser apresentadas) | |||
Linha 1:
{{
{{Info/Software
| plataforma = [[Multiplataforma]]
| data_do_lançamento = {{ani|ano=|mês=|dia=}}
| atualiza_frequentemente = <!-- caso positivo, não preencher parâmetros relativos à versão -->
| última_versão = R2023b
| data_da_última_versão = {{data de lançamento|ano=2024|mês=01|dia = 10}}
| versão_beta = R2024a (Ainda não Lançada)
| data_da_versão_beta = {{data de lançamento|ano=|mês=|dia=}}
| linguagem = [[C (linguagem de programação)|C]], [[Java (linguagem de programação)|Java]] | sistema_operativo = [[Multiplataforma]]
| gênero = Computação técnica
Computação Científica
| repositório = {{URL| }}
}}
'''MATLAB''' (''MATrix LABoratory'') trata-se de um ''[[software]]'' interativo de alta [[performance]] voltado para o [[cálculo numérico]]. O MATLAB integra análise numérica, cálculo com [[Matriz (matemática)|matriz]]es, [[processamento de sinal|processamento de sinais]] e construção de [[gráfico]]s em ambiente fácil de usar, onde problemas e soluções são expressos somente como eles são escritos matematicamente, ao contrário da [[programação]] tradicional.
O MATLAB é um sistema interativo cujo elemento básico de informação é uma matriz que não requer dimensionamento. Esse sistema permite a resolução de muitos problemas numéricos em apenas uma fração do tempo que se gastaria para escrever um [[Programa de computador|programa]] semelhante em [[linguagem de programação|linguagem]] [[Fortran]], [[Basic]] ou [[Linguagem de programação C|C]]. Além disso, as soluções dos problemas são expressas quase exatamente como elas são escritas matematicamente.
== Histórico ==
O MATLAB é um ''software'' destinado a fazer cálculos com matrizes
Jack Little, um [[engenheiro]], conheceu a linguagem MATLAB durante uma visita feita por Moler à [[Universidade de Stanford]], em [[1983]]. Reconhecendo o seu potencial comercial, ele juntou-se a Moler e Steve Bangert.<ref name="mworks">{{citar web|url=http://www.mathworks.com/company/newsletters/news_notes/clevescorner/jan06.pdf |título=The Growth of MATLAB |último =Moler |primeiro =Cleve |formato=PDF |urlmorta= sim|arquivourl=https://web.archive.org/web/20090411120119/http://www.mathworks.com/company/newsletters/news_notes/clevescorner/jan06.pdf |arquivodata=11 de Abril de 2009 |data=|df=}}</ref> Eles reescreveram MATLAB em C; e em [[1984]], fundaram a MathWorks e prosseguiram no seu desenvolvimento. As bibliotecas reescritas ([[LINPACK]] e EISPACK) ficaram conhecidas como LAPACK (incorporada ao MATLAB na versão do ano [[2000]]).<ref name="mworks2">{{citar web|url=https://www.mathworks.com/company/newsletters/articles/matlab-incorporates-lapack.html |título=MATLAB Incorporates LAPACK |último =Moler |primeiro =Cleve |formato=HTML |data=2000|df=}}</ref>
MATLAB foi adotado pela primeira vez por engenheiros de projeto de controle, a especialidade de Little; e rapidamente se espalhou para outros campos de aplicação. Agora, é também utilizado nas áreas da educação, em especial o ensino da [[álgebra linear]] e [[análise numérica]]; e é muito popular entre os [[cientista]]s envolvidos com o [[processamento de imagem]].
== Sintaxe ==
MATLAB é construído na linguagem MATLAB, às vezes chamada M-código ou simplesmente M. No [[Gerenciador de Programas]] do [[Microsoft Windows]], deve-se abrir o grupo de programas do MATLAB para Windows, que contém o ícone do aplicativo MATLAB. Um duplo clique no ícone MATLAB carrega o aplicativo MATLAB. Quando o MATLAB é carregado, duas janelas são exibidas: a Janela de Comando (''Command Windows'') e Janela Gráfica (''Graphic Windows''). A Janela de Comando é ativada quando se inicializa o MATLAB; e o ''[[prompt]]'' padrão (>>) é exibido na tela.
MATLAB pode ser usado como um ''[[Shell (computação)|shell]]'' interativo de matemática. Sequências de comandos podem ser guardadas em um [[arquivo de texto]], tipicamente utilizando o MATLAB Editor, como um ''script''; ou encapsulado em uma função, alargando os comandos disponíveis.
=== Variáveis ===
As [[Variável (programação)|variáveis]] são definidas com o operador “=”. MATLAB é dinamicamente digitado, o que significa que variáveis podem ser atribuídas sem declarar seu tipo, mas este pode ser alterado. Os valores podem vir de [[Constante matemática|constantes]], a partir de cálculos que envolvam valores de outras variáveis
<
>> x = 17
x =
Linha 55 ⟶ 58:
-1.6097 3.0000
</syntaxhighlight>
=== Vetores e
MATLAB é um
MATLAB oferece uma maneira simples de definir ''arrays'' simples, usando a sintaxe
<
>> array = 1:2:9
array =
1 3 5 7 9
</syntaxhighlight>
Define uma variável chamada ''array'' (ou atribui um novo valor a uma variável já existente com o nome ''array''), que é
<
>> array = 1:3:9
array =
1 4 7
</syntaxhighlight>
O valor do incremento pode ficar fora desta sintaxe (junto com os “:”), para usar um valor padrão de incremento 1.
<
>> ari = 1:5
ari =
1 2 3 4 5
</syntaxhighlight>
Atribui à variável chamada "ari" um ''array'' com os valores 1, 2, 3, 4 e 5, uma vez que o valor padrão 1 é usado como o incremento.
A indexação é uma base de [5], que é a convenção usual para matrizes em matemática. Isso é atípico para linguagens de programação, cujos arranjos mais frequentemente começam com zero.
Matrizes podem ser definidas separando os elementos de uma fila com espaço em branco; ou usando vírgula e ponto-e-vírgula para terminar cada linha. A lista de elementos deve ser cercada por colchetes: []. Parênteses: () são usados para acessar os elementos e ''subarrays'' (eles também são usados para denotar uma função "argumento lista").
<
>> A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
A =
Linha 96 ⟶ 98:
9 6 7 12
4 15 14 1
>> A(2,3)
ans =
11
>> A(2:4,3:4)
ans =
Linha 106 ⟶ 108:
7 12
14 1
</syntaxhighlight>
Uma [[matriz identidade]] de tamanho ''n'' podem ser gerada usando a função ''eye
<
>> eye(3)
ans =
Linha 124 ⟶ 126:
1 1 1
1 1 1
</syntaxhighlight>
A maior parte das funções MATLAB pode aceitar matrizes; e irá aplicar-se a cada elemento. Por exemplo, ''mod'' (2 * J, n) irá multiplicar cada elemento em "J" a 2 e, em seguida, reduzir cada elemento módulo
<
[J,I] = meshgrid(1:n);
A = mod(I+J-(n+3)/2,n);
B = mod(I+2*J-2,n);
M = n*A + B + 1;
</syntaxhighlight>
== Extensões ==
O programa dispõe de diversas extensões (chamadas ''toolboxes'' ou ''blocksets''). Além dos módulos adicionais, o MATLAB conta com o ''[[Simulink]]'', um ambiente de simulação baseado em [[diagrama de bloco]]s; e plataforma para ''Model-Based Design''. As suas extensões são:<ref>{{citar web|ultimo=|primeiro=|url=https://www.mathworks.com/products.html?s_tid=gn_ps|titulo=MathWorks Products|data=10/10/2017|acessodata=10/10/2017|publicado=MathWorks Inc.}}</ref>
* ''[[Simulink]]''
* ''Parallel Computing Toolbox''
* ''MATLAB Distributed Computing Server''
*
*
*
*
*
*
* ''Neural Network Toolbox (for Deep Learning)''
*
*
*
*
*
*
*
*
* ''Aerospace Blockset''
*
*
*
*
*
*
*
* ''RF Blockset''
*
*
*
*
*
*
*
*
* ''Image Acquisition Toolbox''
*
*
*
* ''OPC Toolbox''
* ''Vehicle Network Toolbox''
* ''ThingSpeak''
* ''Financial Toolbox''
* ''Econometrics Toolbox''
* ''Datafeed Toolbox''
* ''Database Toolbox''
* ''DO Qualification kit (for DO-178)''
* ''IEC Certification Kit (for ISO 26262 e IEC 61508)''
* ''Spreadsheet Link (for Microsoft Excel)''
* ''Financial Instruments Toolbox''
* ''Trading Toolbox''
* ''Risk Management Toolbox''
* ''Bioinformatics Toolbox''
* ''SimBiology''
* ''MATLAB Coder''
* ''Simulink Coder''
* ''Embedded Coder''
* ''GPU Coder''
* ''HDL Coder''
* ''LTE HDL Toolbox''
* ''HDL Verifier''
* ''Filter Design HDL Coder''
* ''Fixed-Point Designer''
* ''MATLAB Compiler''
* ''MATLAB Compiler SDK''
* ''MATLAB Production Server''
* ''MATLAB Report Generator''
* ''Powertrain Blockset''
* ''Simulink PLC Coder''
* ''Simulink Report Generator''
* ''Simulink Requirements''
* ''Simulink Check''
* ''Simulink Coverage''
* ''Simulink Control Design''
* ''Simulink Coder Inspector''
* ''Simulink Design Optmization''
* ''Simulink Design Verifier''
* ''Simulink Real-Time''
* ''Simulink Desktop Real-Time''
* ''Simscape''
* ''Simscape Multibody''
* ''Simscape Driveline''
* ''Simscape Fluids''
* ''Simscape Electronics''
* ''Simscape Power Systems''
* ''SimBiology''
* ''Simulink Test''
* ''Stateflow''
* ''SimEvents''
* ''Simulink 3D Animation''
* ''Simulink Report Generation''
* ''Polyspace Bug Finder''
* ''Polyspace Code Prover''
*''MATLAB Reservoir Sim''ulation Toolbox
== Exemplos de código-fonte ==
O '''MATLAB '''é uma combinação
=== Olá Mundo ===
O já habitual programa em que se cria uma simples mensagem na tela que diz "Olá Mundo". Para isso, em
<
A função ''disp()'' tanto pode ser usada para impressão directa, ou seja, o programador escreve no [[código-fonte]] aquilo que deve sempre ser impresso; ou nomeia uma função, na qual escreve aquilo
'''Usando
<
texto = 'Olá Mundo';
disp(texto);
</syntaxhighlight>
<
texto = input('Escreva a sua mensagem--> ','s');
disp(texto);
</syntaxhighlight>
No primeiro caso, o
'''Nota:''' no final de cada linha de código em
=== Informação Idades ===
Neste programa, pretende-se iniciar o uso da função ''input()'' e das estruturas aninhadas. Neste simples ''
<
idade = input('Introduza uma idade--> ');
if (idade == 0)
Linha 249 ⟶ 286:
disp('Idade incompreendida');
end;
</syntaxhighlight>
Com este ''software'', pretende-se de uma forma simples fazer entender como funciona uma estrutura ''nested'' e compreender melhor a função ''input()''.
* '''Função ''input()'':''' com a função ''input()'', é pedido ao utilizador que retorne um certo valor [[alfanumérico]] ao sistema, sendo que o programa só continua quando o utilizador retornar esse valor. É como num ''pedy-paper'', quando nos deparamos com uma pergunta e só podemos avançar quando lhe respondermos. O que acontece neste programa é que o utilizador retorna um valor numérico à variável "idade", para depois ser analisado. Repare que no programa anterior, o da mensagem escolhida pelo ''user'', a função ''input()'' era usada com a seguinte sintaxe: ''texto = input('Escreva a sua mensagem--> ','s');'' enquanto que no programa de informação de idades, é escrito assim: ''idade = input('Escreva uma idade--> ');''. A parte do 's' é usada com a função ''input()'' quando queremos dar a possibilidade ao ''user'' de retornar à variável qualquer tipo de valor que ele queira (tanto números como letras). Quando não se usa esta sintaxe, pretende-se que o ''user'' apenas introduza valores do tipo numérico, sendo que quando isso não acontece, aparece a seguinte mensagem de aviso no [[ecrã]]:
<syntaxhighlight lang="matlab">
teste = input('Valor--> ')
Valor--> texto
??? Error using ==> input
Undefined function or variable 'texto'.
</syntaxhighlight>
=== Método de Newton ===
<
function teste=newton(f,p,t)
%Calcula, mostrando as iterações, a raiz de uma função transcendente qualquer
Linha 271 ⟶ 309:
%
%newton('x^2-3',0.0001,9)
%
%O programa mostra:
%
Linha 286 ⟶ 324:
syms x; %defino x como simbolo
dery=diff(f,x); %crio a função derivada de f em função de x
cont=1;
y=subs(f,t);
dy=subs(dery,t);
Linha 313 ⟶ 351:
ylabel('eixo y')
fprintf(' \n').
</syntaxhighlight>
== MATLAB no Brasil ==
Referência em Model-Based Design e Model-Based System Engineering na América Latina e especialista em tecnologias da Indústria 4.0, a '''[https://opencadd.com.br/ OPENCADD]''' é a distribuidora exclusiva dos softwares MATLAB® e Simulink® no [[Brasil]].
Fundada com a missão de enriquecer a indústria brasileira com as mais avançadas soluções tecnológicas, a OPENCADD ajudou a fortalecer a presença do MATLAB e Simulink em território brasileiro. A parceria exclusiva com a [https://www.mathworks.com/ MathWorks] permite à OPENCADD disponibilizar licenças, treinamentos e suporte especializado, garantindo que os usuários brasileiros possam extrair o máximo dessas plataformas.
Isso acontece através de workshops, cursos de treinamento e suporte personalizado, onde a OPENCADD capacita de engenheiros à cientistas para enfrentarem desafios técnicos de maneira mais eficaz, promovendo a inovação e a excelência nas áreas em que atuam.
==Ver também==
* ''[[GNU Octave]]'', um ''[[software livre|software]]'' [[software livre|livre]] com uma linguagem muito parecida com a do MATLAB
* [[Lista de linguagens de programação]]
{{referências}}
== Ligações externas ==
Linha 321 ⟶ 373:
* {{en}} [http://www.mathworks.com/ Página do desenvolvedor do programa]
* {{en}} [http://www.mathworks.com/products/matlab/online/ MATLAB online] - MATLAB web interface
*(em inglês) https://www.sintef.no/projectweb/mrst/
{{Software para análise numérica}}
{{Sistemas algébricos computacionais}}
Linha 331 ⟶ 382:
[[Categoria:Programas para Linux]]
[[Categoria:Álgebra linear numérica]]
[[Categoria:Software de aprendizado de máquina e mineração de dados]]
|