کار با فایل اکسل در متلب
به نام خدا و سلام.
به جلسه بیست و هشتم از سری جلسات آموزش متلب خوش آمدید. آموزش متلب از وبسایت متلبپلاس به صورت تخصصی و رایگان ارائه میشود. در این جلسه به آموزش کار با فایل اکسل در متلب میپردازیم. منظور از کار با اکسل در متلب، در واقع دریافت و ارسال اطلاعات است. خواندن فایل اکسل در متلب و همچنین ارسال اطلاعات از متلب به اکسل. مطالب این جلسه اهمیت زیادی در کار با متلب دارند. چرا که بحث کار بین دو نرم افزار پرکاربرد میباشد.
با متلب پلاس همراه باشید.
فیلم آموزش متلب بصورت پروژه محور (حل 149 نمونه سوال برنامه نویسی❤️) در وبسایت متلبپلاس ارائه شده است. برای مشاهده این پکیج آموزشی روی 👈 حل نمونه سوال برنامه نویسی متلب 👉 کلیک نمائید.
مقدمهای بر اکسل در متلب
یکی از اولین نرم افزارهایی که هر دانشجویی باید مسلط باشد، مجموعه آفیس و مخصوصا اکسل است. در نرم افزار اکسل، دادهها به صورت متن و عدد قرار میگیرند. بدلیل رایج بودن آفیس، میتوان اطلاعات موجود در فایل اکسل را به سایر نرم افزارها نیز انتقال داد. نرم افزار متلب یکی از این موارد است. در واقع با انتقال اطلاعات از اکسل به متلب، میتوان پردازش روی دادهها را انجام داد. پس از آن نیز میتوان اطلاعات را از متلب به اکسل منتقل کرد. در این آموزش متلب به این موارد میپردازیم.
خواندن فایل اکسل در متلب با دستور xlsread
برای وارد کردن دادهها از اکسل به متلب از دستور xlsread استفاده میکنیم. دستور xlsread(filename) دادههای درون فایل اکسل filename را به متلب وارد میکند. دستور xlsread(filename, sheet) دادههای موجود در شیت مشخص را از فایل اکسل به متلب منتقل میکند. این تکنیک هنگامی که فایل اکسل دارای چند شیت (برگه) مختلف باشد مناسب است. برای درک بهتر، مثالهایی از وارد کردن داده از اکسل به متلب ارائه میکنیم.
یک فایل اکسل به نام excel_file1.xlsx در پوشه دایرکتوری متلب داریم. اگر این فایل را در اکسل باز کنیم، به صورت زیر خواهد بود.
برای وارد کردن دادههای این فایل اکسل در متلب، کد زیر را مینویسیم:
A = xlsread('excel_file1.xlsx')
پس از اجرا خواهیم داشت:
A =
0.0100 1.2300 1.3500
0.0200 1.1300 1.3000
0.0300 1.3000 1.2000
0.0400 1.5600 1.1000
0.0500 1.5700 1.0000
0.0600 1.4200 1.2000
0.0700 1.3900 1.4500
0.0800 1.3300 1.5000
0.0900 1.3000 1.5600
0.1000 1.2500 1.6000
0.1100 1.1000 1.7000
0.1200 1.0000 1.8000
0.1300 1.5500 1.6500
0.1400 1.6500 1.4000
0.1500 1.7000 1.3500
مشاهده میشود که اطلاعات درون فایل اکسل به متلب منتقل شدهاست. حال کمی پیشرفتهتر عمل میکنیم. یک فایل اکسل داریم که دارای 2 شیت (برگه) است. قصد داریم از برگه دوم، فقط ستون اول و دوم را به متلب وارد کنیم. تصویر این فایل اکسل به صورت زیر است.
برای وارد کردن دادههای این فایل اکسل در متلب، کد زیر را مینویسیم:
B = xlsread('excel_file2.xlsx','Sheet2','A2:B16')
پس از اجرا خواهیم داشت:
B =
0.0100 1.5129
0.0200 1.2769
0.0300 1.6900
0.0400 2.4336
0.0500 2.4649
0.0600 2.0164
0.0700 1.9321
0.0800 1.7689
0.0900 1.6900
0.1000 1.5625
0.1100 1.2100
0.1200 1.0000
0.1300 2.4025
0.1400 2.7225
0.1500 2.8900
در کد فوق، ابتدا نام فایل اکسل، سپس نام برگه و پس از آن محل موردنظر وارد شدهاست. آدرس A2 تا B16 مربوط به نامگذاریهای درون اکسل است. دقت کنید که فایل اکسل باید درون دایرکتوری متلب باشد. اگر فایل اکسلی که قصد خواندن آن را دارید در محل دیگری است، آدرس آن را در xlsread وارد کنید.
- دستور xlsread(‘C:\Users\Matlabplus\Desktop\file.xlsx’) فایل را از پوشه دسکتاپ میخواند.
حال فرض کنید میخواهیم دادههای درون فایل اکسل زیر را به متلب وارد کنیم.
برخلاف مثالهای قبل، این فایل اکسل دارای متن و عدد است. اگر اطلاعات این فایل را به متلب وارد کنیم، داریم:
C = xlsread('excel_file3.xlsx')
C =
18.5400
16.7000
18.8400
مشاهده میشود که فقط ستون سوم که دارای عدد بوده وارد شدهاست. برای رفع این مشکل باید دستور xlsread را با 3 خروجی بکار ببریم. در واقع در شرایطی که فایل اکسل دارای متن و عدد است، این فرم به کار میرود.
[num,txt,raw] = xlsread('excel_file3.xlsx')
پس از اجرای دستور بالا داریم:
num =
18.5400
16.7000
18.8400
txt =
4×3 cell array
{'name'} {'last name'} {'GPA' }
{'Ali' } {'Alavi' } {0×0 char}
{'Sima'} {'Maleki' } {0×0 char}
{'Ziba'} {'Nik' } {0×0 char}
raw =
4×3 cell array
{'name'} {'last name'} {'GPA' }
{'Ali' } {'Alavi' } {[18.5400]}
{'Sima'} {'Maleki' } {[16.7000]}
{'Ziba'} {'Nik' } {[18.8400]}
خروجی اول مربوط به اعداد، خروجی دوم مربوط به متن و خروجی سوم مربوط به همهی دادهها است. توجه داریم که خروجی اول از نوع عدد، خروجی دوم متن و خروجی سوم ترکیب هر دو است. خروجی دوم و سوم در قالب آرایه سلولی در متلب ایجاد شده اند. در جلسه 15 ام به طور کامل به آموزش آرایه سلول پرداختیم. (برای مشاهده روی لینک قرمز کلیک کنید)
پس از اینکه دادهها به متلب وارد شد میتوانیم انواع پردازشهای ریاضی را روی آنها اعمال کنیم. پس از انجام این عملیات، نوبت به ارسال دادهها به اکسل میرسد. در ادامه به این مورد میپردازیم.
نوشتن دادهها از متلب در اکسل با دستور xlswrite
فرض کنید میخواهیم نتایج یک پژوهش عددی را به استاد (یا هر شخص دیگر) گزارش کنیم. چنانچه این نتایج را درون فایل متلب (mat.) به اشتراک بگذاریم، احتمالا دسترسی سایر افراد به آن سخت خواهد بود. چرا که همهی افراد نرم افزار متلب را روی سیستم خود نصب ندارند. علاوه بر آن دسترسی به این فایل نیز دشوار است. بهترین راه، اشتراک گذاری با فایل اکسل است. بازهم بدلیل رایج بودن اکسل و دسترسی به آن، میتوان اطلاعات را از متلب به اکسل انتقال داد. پس از این کار، فایل اکسل را میتوان به هر شخصی برای مطالعه داد.
دستور xlswrite دادهها را درون یک فایل اکسل وارد میکند. در دستور xlswrite نیز میتوان شماره شیت (برگه)، موقعیت قرارگیری دادهها، محل ذخیره فایل و… را نوشت. به مثال زیر دقت کنید.
دادههای زیر را در متلب ایجاد میکنیم.
t = 1:15;
y = rand(15,1);
data = [t', y, y.^2, y.^3]
data =
1.0000 0.1948 0.0379 0.0074
2.0000 0.2259 0.0510 0.0115
3.0000 0.1707 0.0291 0.0050
4.0000 0.2277 0.0518 0.0118
5.0000 0.4357 0.1898 0.0827
6.0000 0.3111 0.0968 0.0301
7.0000 0.9234 0.8526 0.7873
8.0000 0.4302 0.1851 0.0796
9.0000 0.1848 0.0342 0.0063
10.0000 0.9049 0.8188 0.7409
11.0000 0.9797 0.9599 0.9405
12.0000 0.4389 0.1926 0.0845
13.0000 0.1111 0.0123 0.0014
14.0000 0.2581 0.0666 0.0172
15.0000 0.4087 0.1671 0.0683
میخواهیم دادههای نهایی (یعنی ماتریس data) را درون یک فایل اکسل (با نام testdata) ذخیره کنیم. برای این کار از دستور xlswrite استفاده میکنیم.
xlswrite('testdata.xlsx',data)
در حالت پیشفرض، دادههای data در برگه اول فایل اکسل ذخیره میشوند. البته میتوان نام اختصاصی به برگه داد. دستور xlswrite(‘testdata.xlsx’,data,2) این دادهها را در برگه دوم ذخیره میکند. باتوجه به اینکه آدرسی برای فایل وارد نکردیم، فایل اکسل در دایرکتوری فعلی متلب ایجاد میشود.
حال قصد داریم که دادههای data را در یک فایل اکسل در پوشه دسکتاپ ذخیره کنیم. علاوه بر آن، سربرگ هر ستون نیز مشخص باشد. برای این کار به صورت زیر عمل میکنیم.
filename = 'C:\Users\yourPcName\Desktop\testdata.xlsx';
A = {'Time','Temperature'; 12,98; 13,99; 14,97};
xlswrite(filename,A)
پس از اجرا، یک فایل اکسل با نام testdata در پوشه دسکتاپ ذخیره میشود. توجه کنید که بجای yourPcName در کد بالا، شما نام کامپیوتر (کاربر) خودتان را بنویسید. اگر این فایل را باز کنیم، به صورت زیر است.
به این ترتیب نحوه ذخیره کردن اطلاعات از متلب درون فایل اکسل انجام میشود.
استفاده از ابزار گرافیکی Import برای وارد کردن داده در متلب
مواردی که تاکنون گفته شد مربوط به کدنویسی در نرم افزار متلب است. اما امکان وارد کردن دادهها به متلب به صورت گرافیکی (بدون نیاز به کدنویسی) هم وجود دارد. برای این کار بهترین روش، استفاده از ابزار Import است. آیکن ابزار Import در سربرگ Home متلب قرار دارد. در تصویر زیر محل قرارگیری این ابزار نشان داده شده.
پس از کلیک بر روی این آیکن، پنجرهای باز میشود تا فایل موردنظر را باز کنید. این پنجره مطابق شکل زیر است.
اگر فایل اکسل موردنظر را از طریق این پنجره باز کنیم، با تصویر زیر مواجه میشویم.
در بخشی که محتویات فایل اکسل نمایش داده شده، میتوان سطر و ستون دلخواه را انتخاب کرد. در واقع، با ابزار گرافیکی Import هم میتوان بخش دلخواه از فایل اکسل را وارد متلب کرد. پس از انتخاب بخش موردنظر، روی تیک سبز رنگ کلیک کنید. به همین راحتی اطلاعات اکسل به متلب منتقل میشود.
برای مثال، فایل اکسل شماره 3 (excel_file3) که دارای متن و عدد است را با ابزار Import وارد متلب میکنیم.
پس از کلیک بر روی تیک سبز، فایل اکسل وارد متلب میشود.
حال چنانچه عبارت excelfile3 را در پنجره فرمان اجرا کنیم:
excelfile3
excelfile3 =
3×3 table
name lastname GPA
______ ________ _____
"Ali" "Alavi" 18.54
"Sima" "Maleki" 16.7
"Ziba" "Nik" 18.84
به این ترتیب اطلاعات فایل اکسل به کمک ابزارهای گرافیکی متلب وارد میشود.
تمرینات این جلسه
در انتهای این جلسه 3 تمرین متلب مربوط به مباحث این جلسه ارائه شده است. لطفا این تمرینها را حل کرده و با پاسخ آن مقایسه کنید. پاسخ تمرینات متلب این جلسه در کانال تلگرام متلب پلاس منتشر میشود. از آیکونهای سمت راست صفحه میتوانید در این کانال عضو شوید.
تمرین اول) برنامهای بنویسید که نمرات یک دانشجو به همراه تعداد واحدهای آن را با فایل اکسل دریافت کرده و معدل را محاسبه کند. در انتها نیز با یک پیغام مناسب معدل را نمایش دهد. برای این کار، یک فایل اکسل در دایرکتوری ایجاد کنید و آن را فراخوانی کنید. ستون اول، تعداد واحد و ستون دوم نمرهی هر درس است.
تمرین دوم) تمرین قبل را تکرار کنید با این تفاوت که مقدار معدل را در همان فایل اکسل ذخیره کنید. یک پیغام به کاربر نمایش دهید که نتیجه در اکسل ذخیره شد.
تمرین سوم) اطلاعات یک فایل اکسل را از برگه (شیت) اول وارد متلب کنید. سپس این دادهها را درون شیت دوم همان فایل اکسل ذخیره کنید.
جمعبندی
جلسه بیست و هشتم از سری جلسات آموزش متلب به پایان رسید. این جلسه درباره کار با فایل اکسل در متلب به طور کامل صحبت کردیم. خواندن اطلاعات فایل اکسل در متلب با دستور xlsread و نوشتن اطلاعات در اکسل با xlswrite انجام میشود. این دستورات دارای جزئیاتی مانند محل ذخیره سازی اطلاعات، نام فایل اکسل و… میباشند که بطور کامل توضیح داده شد. در نهایت نیز ابزار Import معرفی و نحوه کار با آن ارائه شد. در انتها چند تمرین برای یادگیری بیشتر به شما واگذار کردیم که پاسخ آنها در کانال تلگرامی متلب پلاس وجود دارد. بی صبرانه منتظر نظرات، سوال و ابهامات شما عزیزان هستیم. سعی میکنیم تا هرگونه سوال یا ابهامی که در این باره دارید را پاسخ دهیم.
توصیه میشود که حتما تمرینات این جلسه را انجام بدید و اگر سوال و ابهامی دارید در بخش نظرات (پایین همین صفحه) به ما بگید. از فهرست سمت راست هم میتونید به بقیه جلسات دسترسی داشته باشید.
10 Comments
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام. من میخوام یه برنامه بنویسم تو متلب که محاسبه انتگرال رو برام توی اکسل انجام بده. منظورم اینه که نتیجه محاسبات رو داخل اکسل ذخیره کنه. میشه کمکم کنید. چجوری باید برنامشو بنویسم؟ ممنون
سلام ارسلان جان
برای ذخیره نتایج متلب در اکسل مشابه با مثالهایی که در بالا زدیم عمل میکنیم. مثلا اگر شما پاسخ انتگرال رو در متغیری به نام a ذخیره کرده باشید، برای ذخیره اون در اکسل کد زیر رو بزنید:
xlswrite(‘data.xlsx’,a)
ضمنا برای محاسبه انتگرال هم یک پست آموزشی کامل در متلبپلاس داریم. میتونید در جلسه 31 (محاسبه انتگرال در متلب) مشاهده کنید.
موفق باشید.
سلام .خیلی زیبا و کامل توضیح داده شد .امیدوارم آنقدر این سایت در زمینه های مختلف تخصصی از جمله برق و مکانیک و …پیشرفت کنه که بشه مرجع سایت ها.ایشالا
با سلام و عرض ادب
بسیار ممنون و متشکریم از لطف جنابعالی. خیلی خیلی خوشحالیم که این آموزش و سایر مطالب سایت مورد رضایت شما بوده. تمام امید و انگیزه تیم ما ارائه مطالب کامل و جامع در همه زمینههای مهندسی به زبانی ساده است.
موفق و مؤید باشید.
درود و سپاس از این همه زحمات شما
بسیار عالی و روان تدریس می فرمایید
آرزوی موفقیت برای شما
ممنون، موفق باشید
باسلام
از اکسل 114 شیت رو وارد متلب کردن و هر شیت 12 ستون داره و میخوام از هرکدوم به صورت جداگانه میانگین بگیرم
لطفا اگر امکانش هست راهنمایی کنید
سلام و عرض ادب
بعد از اینکه فایلها رو وارد متلب کردید، میتونید با اونها مثل سایر دادهها کار کنید. مثلا میانگین گرفتن رو با دستور mean در متلب انجام بدید.
موفق باشید.
سلام وقتتون بخير امکانش هست که یک ماکرو که در محیط VBA اکسل نوشته شده توسط دستوری در متلب ران بشه؟اگر میشه چه کدی رو باید استفاده کرد
بله میشه کدهای VBA رو هم در متلب فراخوانی کرد. این مورد رو در کامنت نمیشه توضیح داد. در گوگل سرچ کنید روشها و آموزشش وجود داره.