MATLAB - Veri Çıkışı
MATLAB'da veri dışa aktarımı (veya çıkışı) dosyalara yazmak anlamına gelir. MATLAB, verilerinizi ASCII dosyalarını okuyan başka bir uygulamada kullanmanıza izin verir. Bunun için MATLAB birkaç veri dışa aktarma seçeneği sunar.
Aşağıdaki dosya türlerini oluşturabilirsiniz -
Bir diziden dikdörtgen, sınırlandırılmış ASCII veri dosyası.
Tuş vuruşlarının günlük (veya günlük) dosyası ve elde edilen metin çıktısı.
Fprintf gibi düşük seviyeli işlevleri kullanan özel ASCII dosyası.
Belirli bir metin dosyası formatına yazan C / C ++ veya Fortran rutininize erişmek için MEX dosyası.
Bunun dışında verileri elektronik tablolara da aktarabilirsiniz.
Sayısal bir diziyi sınırlandırılmış ASCII veri dosyası olarak dışa aktarmanın iki yolu vardır -
Kullanmak save işlevi ve belirtilmesi -ascii niteleyici
Kullanmak dlmwrite işlevi
Kaydetme işlevini kullanmak için sözdizimi -
save my_data.out num_array -ascii
burada, my_data.out oluşturulan sınırlandırılmış ASCII veri dosyasıdır, num_array sayısal bir dizidir ve −ascii tanımlayıcıdır.
Kullanmak için sözdizimi dlmwrite işlev -
dlmwrite('my_data.out', num_array, 'dlm_char')
burada, my_data.out oluşturulan sınırlandırılmış ASCII veri dosyasıdır, num_array sayısal bir dizidir ve dlm_char sınırlayıcı karakterdir.
Misal
Aşağıdaki örnek kavramı göstermektedir. Bir komut dosyası oluşturun ve aşağıdaki kodu yazın -
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
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
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
Save -ascii komutunun ve dlmwrite işlevinin, girdi olarak hücre dizileriyle çalışmadığını lütfen unutmayın. Bir hücre dizisinin içeriğinden ayrılmış bir ASCII dosyası oluşturmak için şunları yapabilirsiniz:
Ya, hücre dizisini kullanarak matrise dönüştürün. cell2mat işlevi
Veya düşük seviyeli dosya G / Ç işlevlerini kullanarak hücre dizisini dışa aktarın.
Eğer kullanırsanız save işlevi bir ASCII dosyasına bir karakter dizisi yazmak için, karakterlerin ASCII eşdeğerini dosyaya yazar.
Örneğin, bir dosyaya 'merhaba' kelimesini yazalım -
h = 'hello';
save textdata.out h -ascii
type textdata.out
MATLAB yukarıdaki ifadeleri yürütür ve aşağıdaki sonucu görüntüler. 8 basamaklı ASCII biçimindeki 'merhaba' dizesinin karakterleri.
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
Günlük Dosyalarına Yazmak
Günlük dosyaları, MATLAB oturumunuzun etkinlik günlükleridir. Günlük işlevi, grafikler dışında bir disk dosyasında oturumunuzun tam bir kopyasını oluşturur.
Günlük işlevini açmak için şunu yazın -
diary
İsteğe bağlı olarak, günlük dosyasının adını da verebilirsiniz:
diary logdata.out
Günlük işlevini kapatmak için -
diary off
Günlük dosyasını bir metin düzenleyicide açabilirsiniz.
Düşük Seviye G / Ç ile Verileri Metin Veri Dosyalarına Aktarma
Şimdiye kadar sayısal dizileri dışa aktardık. Ancak, sayısal ve karakter verilerinin kombinasyonları, dikdörtgen olmayan çıktı dosyaları veya ASCII olmayan kodlama şemalarına sahip dosyalar dahil olmak üzere başka metin dosyaları oluşturmanız gerekebilir. Bu amaçlar için MATLAB, düşük seviyelifprintf işlevi.
Düşük seviyeli G / Ç dosyası etkinliklerinde olduğu gibi, dışa aktarmadan önce, bir dosya açmanız veya oluşturmanız gerekir. fopenişlevi ve dosya tanımlayıcısını alın. Varsayılan olarak, fopen salt okunur erişim için bir dosya açar. Yazma veya ekleme iznini 'w' veya 'a' gibi belirtmelisiniz.
Dosyayı işledikten sonra kapatmanız gerekir. fclose(fid) işlevi.
Aşağıdaki örnek kavramı göstermektedir -
Misal
Bir komut dosyası oluşturun ve içine aşağıdaki kodu yazın -
% 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
Dosyayı çalıştırdığınızda, aşağıdaki sonucu görüntüler -
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