یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی یه تابستون متفاوت با یه تصمیم هوشمندانه! دوره هوش مصنوعی
🎯 ثبت نام

خروجی در متلب

Data Output

خروجی در متلب معنی ارسال به فایل را دارد. متلب این اجازه را به شما می دهد که از داده هایتان در برنامه های دیگر که در فایل های اسکی خوانده می شود استفاده کنید.

می توان انواع فایل های زیر را ایجاد کرد.

1)     مستطیل، تحدید فایل داده های اسکی از یک آرایه

2)     فایل Diary یا log از کلید ها و نتیجه به عنوان متن خروجی

3)     فایلASCII  تخصصی با استفاده از توابع سطح پایین مانند fprintf

4)     MEX-file برای دسترسی آسان به C/C++ یا فورترن که به صورت فایل متنی خاص نوشته می شود

جدای از آن، شما همچنین می توانید داده ها را به صفحات گسترده ارسال کنید.

دو راه برای ارسال یک آرایه عددی به عنوان یک فایل داده اسکی محدود وجود دارد.

1)     استفاده از تابع save و مشخص کردن تعریف کننده ascii

2)     استفاده از تابع dlmwrite

سینتکس استفاده از تابع save به صورت زیر می باشد.

save my_data.out num_array -ascii

از طرفی my_data.out فایل داده ای اسکی محدود شده و num_array یک آرایه عددی و –ascii یک مشخص کننده می باشد.

سینتکس تابع dlmwrite به صورت زیر می باشد.

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

از طرفی my_data.out فایل داده ای اسکی محدود شده و num_array یک آرایه عددی و dlm_char یک کاراکتر محدود شده می باشد.

مثال

این مثال مفهوم را بهتر مشخص می کند. یک فایل اسکریپت ایجاد کرده و کد های زیر را در آن می نویسیم.

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

وقتی فایل را اجرا می کنیم، نتیجه به صورت زیر نمایش داده می شود.

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 و تابع dlmwrite با خانه آرایه به عنوان ورودی کار نمی کند. یک فایل اسکی محدود شده را از محتوای خانه آرایه ایجاد می کنیم، می توانیم

1)     می توانیم خانه آرایه را توسط تابع cell2mat به ماتریس تبدیل کنیم.

2)     هم می توانیم با استفاده از تابع سطح پایین I/O، خانه آرایه را ارسال کنیم.

اگر از تابع save استفاده می کنید، یک آرایه کاراکتر را به فایل اسکی بنویسید، آن را اسکی معادل کاراکتر ها می نویسد.

برای مثال، کلمه 'hello' را در یک فایل بنویسید.

h = 'hello';
save textdata.out h -ascii
type textdata.out

متلب برنامه های بالا را اجرا کرده و نتیجه را نشان می دهد. کاراکتر رشته 'hello' فرمت 8 رقمی اسکی می باشد.

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

نوشتن فایل های  Diary(یاد آور)

دستور diary باعث می شود که همه دستورات به جز خود دستور diary در یک فایل متنی ذخیره شود. فایل diary را به صورت زیر فعال می کنیم.

diary

در صورت تمایل، می توانید نام فایل log را بگیریم. مانند زیر

diary logdata.out

همچنین می توانیم با استفاده از دستور زیر فایل diary را خاموش کنیم.

diary off

می توانیم فایل diary را در یک ویرایشگر متنی باز کنیم.

گزارش گیری داده برای فایل متنی داده با استفاده از تابع سطح پایین I/O

نیاز به ایجاد فایل های متنی دیگر داریم، از جمله ترکیب عددی و داده کاراکتر، فایل های خروجی غیر مستطیلی یا فایل هایی با طرح های پشتیبانی غیر اسکی. برای این هدف، متلب تابع سطح fprintf را ارائه می دهد.

همانطور که در فعالیت های فایل سطح پایین I/O، قبل از گزارش گیری، ما نیاز به باز کردن یا ایجاد یک فایل با تابع fopen و دریافت شناسه فایل داریم. به صورت پیش فرض، تابع fopen فایل را فقط خواندنی باز می کند.

بعد از پردازش فایل، آن را با تابع fclose(fid) می بندیم.

مثال

یک فایل اسکریپت ایجاد کرده و کد های زیر را در آن می نویسیم.

% 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

بعد از اجرای فایل، نتیجه زیر بدست می آید.

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

 

 

1394/09/04 12381 1627
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...