English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Saída de Dados do MATLAB

Exportação de dados (ou saída) em MATLAB significa escrever no arquivo. MATLAB permite que você use seus dados em outro aplicativo que leia arquivos ASCII. Para isso, MATLAB oferece várias opções de exportação de dados.

Você pode criar os seguintes tipos de arquivos-

  • Arquivos de dados ASCII separados em retângulos.

  • Arquivo de diário de teclas (ou log) e saída de texto.

  • Arquivo ASCII especial usando funções de baixo nível (como fprintf).

  • Arquivo MEX, usado para acessar arquivos escritos em um formato de texto específico. / C ++Ou subrotinas Fortran.

Além disso, você pode exportar dados para planilhas eletrônicas.

Existem duas maneiras de exportar arrays numéricos para arquivos de dados ASCII delimitados-

  • Usarsavefunção e especificar-asciidelimitador

  • Usardlmwritefunção

A sintaxe da função save é-

save my_data.out num_array -ascii

onde,my_data.outé o arquivo de dados ASCII delimitado criado,num_arrayé um array numérico e  −asciié o delimitador.

UsardlmwriteA sintaxe da função é-

dlmwrite('my_data.out', num_array, 'dlm_char')

onde,my_data.outé o arquivo de dados ASCII delimitado criado,num_arrayé um array numérico,   dlm_charé o delimitador.

Exemplo online

O exemplo a seguir ilustra o conceito. Crie um arquivo de script e insira o seguinte código-

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 o arquivo é executado, ele exibe o seguinte resultado-

   10000000e+00   20000000e+00   30000000e+00   40000000e+00
   40000000e+00   50000000e+00   60000000e+00   70000000e+00
   70000000e+00   80000000e+00   90000000e+00      0.0000000e+00
1 2 3 4
4 5 6 7
7 8 9 0

Atenção, save -O comando ascii e a função dlmwrite não são aplicáveis a arrays de células como entrada. Para criar um arquivo ASCII delimitado a partir do conteúdo do array de células, você pode

  • Usarcell2matA função converte o array de células em uma matriz

  • Ou usar o nível inferior de arquivo I / O função exportar array de células.

Se usarsaveSe a função escrever a matriz de caracteres no arquivo ASCII, ela será equivalente à escrita do caractere ASCII no arquivo.

Por exemplo, vamos escrever a palavra 'hello' no arquivo.-

h = 'hello';
savetextdata.outh -ascii
type textdata.out

O MATLAB executa a instrução acima e exibe o seguinte resultado. Isso é8A string de caractere ASCII 'hello' em formato de bits.

1.0400000e+02   1.0100000e+02   1.0800000e+02   1.0800000e+02   1.1100000e+02

Escrever no arquivo de diário

O arquivo de diário é o log de atividades da sua sessão do MATLAB. A função diário pode criar uma cópia exata da sessão no arquivo no disco, mas não inclui gráficos.

Para abrir a função diário, digite-

diary

(Opcional) Você pode fornecer o nome do arquivo de log, por exemplo-

diary logdata.out

Fechar a função diário-

diary off

Você pode abrir o arquivo de diário no editor de texto.

Usar o nível inferior I / O exportar dados para o arquivo de dados de texto

Até agora, já exportamos arrays numéricos. Mas você pode precisar 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 isso, o MATLAB fornece funcionalidades básicas.fprintffunção.

igual ao em baixo I / Como em atividades de arquivo O, antes de exportar, você precisa usarfopenfunção para abrir ou criar um arquivo e obter o identificador do arquivo. Por padrão, fopen abre o arquivo para acesso apenas de leitura. Você deve especificar permissões para escrita ou adição, por exemplo, "w" ou "a".

Após processar o arquivo, é necessário usarfclose(fid)A função fecha-o.

O seguinte exemplo ilustra o conceito-

Exemplo

Crie um arquivo de script e digite o seguinte código-

%Cria uma matriz y com duas linhas
x = 0:10:100;
y = [x; log(x)];
 
%Abre o arquivo para escrita
fid = fopen('logtable.txt', 'w');
 
%Título da tabela
fprintf(fid, 'Log Function\n\n');
 
%Imprime valores em ordem colunar
%Mostra dois valores em cada linha do arquivo
fprintf(fid, '%f    %f\n', y);
fclose(fid);
%Mostra o arquivo criado
type logtable.txt

Quando o arquivo é executado, 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