Export کردن داده ها در زبان متلب
Export کردن داده ها در متلب به معنای نوشتن داده ها در داخل فایل است. متلب به شما اجازه می دهد تا از داده هایتان در سایر برنامه هایی که می توانند فایل های ASCII بخوانند، استفاده کنید. در متلب گزینه های زیر برای export کردن داده ها وجود دارد:
- مستطیلی، فایل ASCII محدود شده از آرایه
- Diary یا فایل لاگ
- فایل ASCII خاص با استفاده از توابع سطح پایین مانند fprintf
جدا از موارد فوق، شما می توانید داده ها را به صورت spreadsheets نیز export کنید. برای این کار دو روش وجود دارد:
- استفاده از تابع save و مشخص کردن آرگومان -ascii
- استفاده از تابع dlmwrite
سینتکس مربوط به تابع save:
1 | save my_data.out num_array -ascii |
سینتکس مربوط به تابع dlmwrite:
1 | dlmwrite('my_data.out', num_array, 'dlm_char') |
مثال:
یک فایل اسکریپتی ایجاد کرده و کد زیر را در آن بنویسید:
1 2 3 4 5 | 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 2 3 4 5 6 7 | 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 با آرایه سلولی به عنوان ورودی کار نمی کنند. برای ایجاد فایل ASCII محدود شده از روی محتوای یک آرایه سلولی می توانید:
- آرایه سلولیرا با استفاده از تابع cell2mat به ماتریس تبدیل کنید
- و یا آرایه سلولی را با استفاده از توابع سطح پایین export کنید
اگر از تابع save برای نوشتن آرایه ای کاراکتر در یک فایل ASCII استفاده کنید، این تابع معادل ASCII آن کاراکتر را می نویسد. برای درک بهتر به مثال زیر توجه کنید:
1 2 3 | h = 'hello'; save textdata.out h -ascii type textdata.out |
زمانی که کد فوق اجرا شود، خروجی زیر را تولید خواهد کرد:
1 | 1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02 |
نوشتن در فایل های Diary
فایل های Diary لاگ فایل هایی هستند که فعالیت های مربوط به session متلب در آن ها ذخیره می شود. تابع Diary یک کپی از session شما (به جز گرافیک ها) بر روی دیسک ایجاد می کند. برای فعال سازی این تابع دستور زیر را تایپ کنید:
1 | diary |
به طور اختیاری می توانید نام فایل لاگ را هم مشخص کنید:
1 | diary logdata.out |
برای غیرفعال سازی هم می توانید از دستور زیر استفاده کنید:
1 | diary off |
Export کردن داده ها به فایل متنی با ورودی/خروجی (I/O) سطح پایین
تا اینجا ما آرایه های عددی را export کردیم. با این حال شما ممکن است بخواهید فایل های متنی دیگری شامل ترکیب اعداد و کاراکتر و غیره ایجاد کنید. برای این کار MATLAB تابع سطح پایین fprintf را در اختیار شما قرار می دهد.
مانند سایر فعالیت های فایلی سطح پایین، قبل از اینکه بتوانید کاری بر روی فایل انجام دهید باید ابتدا آن را با استفاده از تابع fopen باز/ایجاد کنید. به طور پیشفرض این تابع فایل را با دسترسی فقط-خواندنی (read-only) باز می کند. بنابراین برای نوشتن داده در فایل باید آن را با سطح دسترسی مانند ‘w’ و یا ‘a’ باز کنید. همچنین بعد از این که کارتان با فایل تمام شد باید آن را با استفاده از تابع fclose ببندید.
مثال:
یک فایل اسکریپتی ایجاد کرده و کد زیر را در آن بنویسید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | % 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 |
خروجی:
1 2 3 4 5 6 7 8 9 10 11 12 | 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 |
هیچ نظری ثبت نشده است