O que é o formato de ficheiro MAT?
.mat é um arquivo de dados binário usado pelo MATLAB - o ambiente de computação técnica da MathWorks - para armazenar variáveis nomeadas do espaço de trabalho. Arrays, matrizes, structs, cell arrays e strings são todos compactados em um único arquivo .mat, permitindo que analistas salvem uma sessão de trabalho inteira e a recarreguem exatamente como foi deixada.
O formato evoluiu através de várias gerações. O contêiner dominante Level 5, introduzido em 1996, começa com um cabeçalho descritivo ASCII de 128 bytes - os primeiros bytes leem MATLAB 5.0 MAT-file - seguido por uma sequência de elementos de dados marcados (registros miMATRIX) que carregam cada um um nome de variável, classe de dados e dimensões ao lado dos bytes brutos do array. O formato v7 adicionou compressão opcional DEFLATE (zlib) por variável, mantendo esta mesma estrutura. O MAT-file v7.3, lançado com o MATLAB R2006b (2006), muda silenciosamente o contêiner para HDF5 - e é por isso que alguns arquivos .mat abrem em ferramentas HDF5 genéricas, como o HDFView, enquanto os mais antigos não. O formato v7.3 também remove o limite prático de tamanho de ~2 GB por variável do Level 5.
Salvar e carregar arquivos .mat no MATLAB utiliza os comandos save e load; passe -v7.3 para save para selecionar o backend HDF5. O GNU Octave lê e escreve tanto Level 5 quanto v7.3 nativamente. Em Python, scipy.io.loadmat lida com o Level 5, enquanto h5py aborda o v7.3. Os dados também podem ser trocados com arquivos .csv para resultados tabulares mais simples. O tipo MIME registrado é application/x-matlab-data.
Segurança e proteção
RISCO: LOWUm arquivo de dados .mat é passivo - ele armazena números e strings, não código executável, portanto, abrir um para ler suas variáveis é de baixo risco. Duas ressalvas: (1) function handles e objetos do MATLAB podem ser serializados em um .mat, e carregá-los pode, em casos restritos, invocar código de classe - trate arquivos .mat de fontes não confiáveis com a mesma cautela que qualquer dado que você executará através de scripts; (2) um .mat v7.3 é um arquivo HDF5, portanto use um leitor HDF5/MAT atualizado. Não há autoexecução estilo macro como em documentos do Office.
Detalhes do formato
em resumo- Arquivo de material 3ds Max / game-engine - Algumas ferramentas 3D e de jogos usam .mat para uma definição de material (shaders/texturas), sem relação com o MATLAB.
- Sessão Audiotool .mat - O estúdio de música online Audiotool salva projetos com a extensão .mat.
- Atalho de tabela do Microsoft Access - Legado: um pequeno ponteiro que inicia uma tabela do Access - o nome (incorreto) registrado no banco de dados deste site.
Programas que abrem arquivos MAT
Detalhes técnicos
especificação profunda| Desenvolvedor | MathWorks |
| Tipo de formato | Contêiner binário de dados científicos (arrays e variáveis nomeadas); v7.3 usa HDF5 em disco |
| Versões do formato | Level 4 (legado, pré-1996), Level 5 (MATLAB 5-7), v7.3 (baseado em HDF5, R2006b em diante) |
| Assinatura de arquivo Level 5 | Texto ASCII „MATLAB 5.0 MAT-file” em um cabeçalho descritivo de 128 bytes começando no deslocamento de byte 0 |
| Assinatura de arquivo v7.3 | Bytes mágicos HDF5 89 48 44 46 0D 0A 1A 0A no deslocamento 0; o bloco de usuário HDF5 abre com „MATLAB 7.3 MAT-file” |
| Ordem dos bytes | Autodescrito: „MI” = big-endian, „IM” = little-endian, armazenado nos bytes 126-127 do cabeçalho Level 5; v7.3 (HDF5) registra seus próprios metadados de ordem de bytes |
| Tipos de dados suportados | double, single, int8/16/32/64, uint8/16/32/64, arrays complexos, char, logical, struct, cell array, function handle |
| Compressão | DEFLATE (zlib) opcional por variável no Level 5 v7; filtro gzip/deflate HDF5 disponível no v7.3 |
| Limite de tamanho por variável | Level 5: ~2 GB por variável; v7.3 (HDF5): sem limite superior prático - suporta arrays que excedem 2 GB |
| Tipo MIME | application/x-matlab-data (application/matlab-mat e application/octet-stream também vistos na prática) |
| Estrutura interna Level 5 | Cabeçalho de texto descritivo de 128 bytes seguido por uma sequência de elementos de dados miMATRIX marcados, cada um armazenando nome da variável, classe, dimensões e dados brutos do array |
| Compatibilidade com ferramentas HDF5 | Arquivos v7.3 são HDF5 válidos e abrem no HDFView, na biblioteca C HDF5, h5py e outras ferramentas compatíveis com HDF5 sem o MATLAB |
| Acesso via Python | scipy.io.loadmat para arquivos Level 5/v7; h5py ou o pacote mat73 para arquivos v7.3 |
| Flags do comando save do MATLAB | -v6 ou -v7 seleciona Level 5; -v7.3 seleciona o formato baseado em HDF5 (ex: save('data.mat','varname','-v7.3')) |
| Verificação de integridade | Level 5 não possui checksum para o arquivo todo; v7.3 (HDF5) suporta filtros de checksum HDF5 opcionais por conjunto de dados |
| Lançado | MAT-file Level 5 format with MATLAB 5 (1996); v7.3 (HDF5-based) added in MATLAB 7.3 (2006) |
| Versão mais recente | MAT-file v7.3 (HDF5-based, supports variables > 2 GB); Level 5 still used by v6/v7 |
| Padrão aberto | Sim · livre de royalties |
| Especificação | www.mathworks.com |
Conversões de MAT
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos MAT.