آموزش export کردن داده ها در متلب
پس از اینکه محاسبات خود را بر روی داده ها انجام دادیم، نیاز داریم تا آنها را به شکلی در بیاوریم که برای دیگران قابل استفاده باشد. چون که همه ی مردم نرم افزار متلب را بر روی رایانه خود نصب نکرده اند، نیاز داریم تا داده های متلب را export کنیم. خوشبختانه export کردن داده ها، ساده تر از export کردن آنها می باشد. در بخش های زیر، روش export کردن داده ها و اسکریپت ها و توابع آموزش داده شده است.
مقدمات Export کردن داده ها در متلب
هدف ما از export کردن داده ها این است که یک فایل استاندارد ایجاد کنیم که دریافت کننده هنگام استفاده از آن، هیچ مشکلی نداشته باشد.
در بخش های زیر از این فصل، بر تکنیک های استاندارد export کردن تمرکز می کنیم.
کار کردن با ماتریس ها و داده های عددی
قبل از اینکه کاری انجام دهیم، برای export کردن به مقداری داده نیاز داریم. دستور زیر را در متلب تایپ کنید و کلید Enter را فشار دهید.
دستور:
ExportMe = [1, 2, 3; 4, 5, 6; 7, 8, 9]
خروجی به صورت زیر خواهد بود:
آنچه به دست آورده ایم، یک ماتریس با سه سطر و سه ستون است.
export کردن ماتریس ها بسیار ساده است زیرا اکثر توابع به طور پیش فرض یک ماتریس را قبول می کنند. برای اینکه با روش export کردن ماتریس ها آشنا شوید، دستور زیر را در متلب تایپ کنید و کلید Enter را فشار دهید:
دستور:
csvwrite('ExportedData1.csv',ExportMe)
خواهید دید که متلب یک فایل جدید ایجاد می کند و شما می توانید آن را در پنجره ی Current Folder مشاهده کنید. وقتی که شما این فایل را باز کنید، چیزی شبیه عکس 11.3 را مشاهده خواهید نمود:
تمامی داده های متلب را نمی توان در قالب یک ماتریس ارائه داد، در حالی که تابع csvwrite تنها یک ماتریس را می پذیرد. برای اینکه بتوانیم از داده ها یک ماتریس به دست بیاوریم، باید با استفاده از یک تابع تبدیل کننده، فرمت داده ها را به فرمت ماتریس تبدیل کنیم.
بعنوان مثال، اگر داده های ما به شکل یک آرایه ی سلولی باشند، می توانیم با استفاده از تابع ()cell2mat آنها را به ماتریس تبدیل کنیم. اما تبدیل های دیگری نیز وجود دارند که کار کردن با آنها به این سادگی نیست. بعنوان مثال، اگر بعنوان ورودی یک جدول داشته باشید، باید برای تبدیل آن، کارهای زیر را انجام دهید:
1. باید از تابع ()table2cell برای تبدیل جدول به آرایه ی سلولی استفاده کنید.
2.باید از تابع ()cell2mat برای تبدیل آرایه ی سلولی به یک ماتریس استفاده کنید.
کار کردن با داده های مخلوط شده در متلب
export کردن داده های عددی ساده، راحت است زیرا برای ایجاد فرمت های دلخواه از این داده ها، توابع زیادی وجود دارند. اما زمانی مشکل ایجاد می شود که ما یک آرایه ی سلولی یا داده ای به شکلی دیگر داشته باشیم که با ورودی تابع ()csvwrite تطابق نداشته باشد. برای اینکه بینید داده های مخلوط شده چگونه کار می کنند، دستور زیر را در متلب تایپ کنید و کلید Enter را فشار دهید:
دستور:
MyCellArray = {'Andria', 42, true; 'Michael', 23, false;'Zarah', 61, false}
خروجی زیر را مشاهده خواهید نمود:
مشکل اصلی ما این است که این داده ها با یکدیگر مخلوط شده اند. اگر همه ی این داده ها از یک نوع بودند، می توانستیم از تابع ()cell2mat برای تبدیل آنها به یک ماتریس استفاده کنیم. مثل دستور زیر:
دستور
MyMatrix = cell2mat(MyCellArray)
متاسفانه اگر این دستور را اجرا کنید با یک پیغام خطا مواجه خواهید شد، مثال:
برای اینکه بتوانیم یک فایل csv به دست بیاوریم، ابتدا باید آرایه ی سلولی را به چیز دیگری تبدیل کنیم. ساده ترین راه این است که به جدول ها تکیه کنیم. بنابراین دستور زیر را در متلب تایپ کنید و کلید Enterرا فشار دهید:
دستور:
MyTable = cell2table(MyCellArray)
خروجی به صورت زیر خواهد بود:
حالا دستور زیر را در متلب تایپ کنید و کلید Enter را فشار دهید:
دستور
writetable(MyTable, 'ExportedData2.csv','WriteVariableNames', false)
در این خروجی، حرف جداکننده ی ستون ها، علامت کاما در نظر گرفته می شود، بنابراین فایل خروجی آن با فرمت csv خواهد بود. عکس 4.11 نشان می دهد که در اکسل، فایل خروجی ما به چه صورت خواهد بود. ممکن است بر اساس برنامه ای که از آن استفاده می کنید، خروجی شما کمی متفاوت باشد:
حالا عملیات export کردن به خوبی انجام خواهد شد. اما شما همواره می توانیدبا استفاده از خصوصیات مخصوص به تابع writetable کیفیت خروجی این تابع را بهتر کنید.
در زیر، به طور خلاصه، خصوصیات تابع writetable و کاربرد آنها را آورده یم:
- خصوصیت FileType: نوع فایل را مشخص می کند. و می تواند شامل مقادیر text یا spreadsheet باشد.
- خصوصیت WriteVariableNames: مشخص می کند که آیا ردیف اول داده های فایل ورودی، حاوی نام متغیرهای استفاده شده در متلب باشد یا نه.مقادیر true یا false یا 0 و 1 را می پذیرد. مقدار پیش فرض آن true است.
- خصوصیت WriteRowNames: مشخص می کند که آیا اولین ستون فایل خروجی حاوی نام ردیف های بکار رفته در متلب باشد یا نه. مقادیر true و false یا 1 یا 0 را می پذیرد. مقدار پیش فرض آن false است.
- خصوصیت Delimiter: مشخص می کند که از چه کاراکتری بعنوان جداکننده استفاده شود.
- خصوصیت Sheet: مشخص می کند که از کدام صفحه ی گسترده(worksheet) برای نوشتن در فایل مورد نظر استفاده شود.
- خصوصیت Range: یک ناحیه ی مستطیلی از داده های worksheet را مشخص می کند تا خروجی را از آنها تولید کنیم.
export کردن اسکریپت ها و تابع ها در متلب
برای export کردن اسکریپت ها و تابع ها، باید با استفاده از تابع ()publish آنها را منتشر کنید. نرم افزار متلب، از خروجی های متفاوتی برای انجام این کار، پشتیبانی می کند.
بعنوان مثال، اگر بخواهیم تابعی به نام ()UseTextscan را منتشر کنیم، باید دستور زیر را در متلب تایپ کنیم و سپس کلید Enter را فشار دهیم:
دستور:
publish('UseTextscan.m', 'html')
با اجرای دستور بالا، خروجی زیر را در متلب مشاهد می کنیم:
ممکن است این آدرس برای شما کمی متفاوت باشد. اما می توانید موقعیت فایل منتشر شده را خودتان تعیین کنید. همان طور که مشاهده می کنید، متلب این فایل منتشر شده را پوشه ای به نام html و در یک فایل با پسوند html ذخیره کرده است. تصویر 11.5 خروجی را به ما نشان می دهد، البته بر اساس مرورگری که استفاده می کنید، ممکن است این خروجی متفاوت باشد.
در فصل 12 به جزئیات بیشتری در مورد منتشر کردن فایل ها می پردازیم.
- نوشته شده توسط احسان عباسی
- بازدید: 40625