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