MATLAB - Saída de Dados
A exportação de dados (ou saída) no MATLAB significa escrever em arquivos. O MATLAB permite que você use seus dados em outro aplicativo que lê arquivos ASCII. Para isso, o MATLAB oferece diversas opções de exportação de dados.
Você pode criar os seguintes tipos de arquivos -
-
Arquivo de dados ASCII retangular e delimitado de uma matriz.
-
Arquivo de diário (ou log) de pressionamentos de tecla e a saída de texto resultante.
-
Arquivo ASCII especializado usando funções de baixo nível, como fprintf.
-
MEX-file para acessar sua rotina C/C++ ou Fortran que grava em um formato de arquivo de texto específico.
Além disso, você também pode exportar dados para planilhas.
Existem duas maneiras de exportar uma matriz numérica como um arquivo de dados ASCII delimitado -
-
Usando o salvar função e especificando o -ascii qualificador
-
Usando o dlmwrite função
A sintaxe para usar a função save é -
save my_data.out num_array -ascii
onde, my_data.out é o arquivo de dados ASCII delimitado criado, num_array é uma matriz numérica e −ascii é o especificador.
Sintaxe para usar o dlmwrite função é -
dlmwrite('my_data.out', num_array, 'dlm_char')
onde, my_data.out é o arquivo de dados ASCII delimitado criado, num_array é uma matriz numérica e dlm_char é o caractere delimitador.
Exemplo
O exemplo a seguir demonstra o conceito. Crie um arquivo de script e digite o seguinte código -
Demonstração ao vivo
num_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 0]; save array_data1.out num_array -ascii; type array_data1.out dlmwrite('array_data2.out', num_array, ' '); type array_data2.out
Quando você executa o arquivo, ele exibe o seguinte resultado -
1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00 4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00 7.0000000e+00 8.0000000e+00 9.0000000e+00 0.0000000e+00 1 2 3 4 4 5 6 7 7 8 9 0
Observe que o comando save -ascii e a função dlmwrite não funcionam com matrizes de células como entrada. Para criar um arquivo ASCII delimitado a partir do conteúdo de uma matriz de células, você pode
-
Ou, converta a matriz de células em uma matriz usando o cell2mat função
-
Ou exporte a matriz de células usando funções de E/S de arquivo de baixo nível.
Se você usar o salvar função para gravar uma matriz de caracteres em um arquivo ASCII, ela grava o equivalente ASCII dos caracteres no arquivo.
Por exemplo, vamos escrever a palavra 'hello' em um arquivo -
Demonstração ao vivo
h = 'hello'; save textdata.out h -ascii type textdata.out
O MATLAB executa as instruções acima e exibe o seguinte resultado. que são os caracteres da string 'hello' no formato ASCII de 8 dígitos.
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
Escrevendo em arquivos de diário
Os arquivos de diário são logs de atividade da sua sessão do MATLAB. A função de diário cria uma cópia exata de sua sessão em um arquivo de disco, excluindo gráficos.
Para ativar a função de diário, digite −
diary
Opcionalmente, você pode fornecer o nome do arquivo de log, digamos -
diary logdata.out
Para desligar a função de diário −
diary off
Você pode abrir o arquivo do diário em um editor de texto.
Exportando dados para arquivos de dados de texto com E/S de baixo nível
Até agora, exportamos arrays numéricos. No entanto, pode ser necessário criar outros arquivos de texto, incluindo combinações de dados numéricos e de caracteres, arquivos de saída não retangulares ou arquivos com esquemas de codificação não ASCII. Para esses propósitos, o MATLAB fornece o fprintf de baixo nível função.
Como nas atividades de arquivo de E/S de baixo nível, antes de exportar, você precisa abrir ou criar um arquivo com o fopen função e obter o identificador do arquivo. Por padrão, fopen abre um arquivo para acesso somente leitura. Você deve especificar a permissão para escrever ou anexar, como 'w' ou 'a'.
Após processar o arquivo, você precisa fechá-lo com fclose(fid) função.
O exemplo a seguir demonstra o conceito -
Exemplo
Crie um arquivo de script e digite o seguinte código nele -
Demonstração ao vivo
% create a matrix y, with two rows x = 0:10:100; y = [x; log(x)]; % open a file for writing fid = fopen('logtable.txt', 'w'); % Table Header fprintf(fid, 'Log Function\n\n'); % print values in column order % two values appear on each row of the file fprintf(fid, '%f %f\n', y); fclose(fid); % display the file created type logtable.txt
Quando você executa o arquivo, ele exibe o seguinte resultado -
Log Function 0.000000 -Inf 10.000000 2.302585 20.000000 2.995732 30.000000 3.401197 40.000000 3.688879 50.000000 3.912023 60.000000 4.094345 70.000000 4.248495 80.000000 4.382027 90.000000 4.499810 100.000000 4.605170
MATLAB