رسم داده های اکسل در متلب
نرمافزار Microsoft Excel یکی از ابزارهای ذخیرهسازی داده است. این نرمافزار قابلیتهایی از قبیل توانایی ذخیره دادههای بزرگ، دارا بودن ابزارهای آنالیز داده و قابلیت انجام محاسبات برروی دادهها را دارد که آن را به ابزاری مناسب برای ذخیرهسازی اطلاعات تبدیل میکند. اولین قدم برای رسم داده های اکسل در متلب، خواندن فایل اکسل در متلب است. در این پست میخواهیم یک فایل اکسل را در نرمافزار متلب فراخوانی و دادههای ذخیره شده در آن را استخراج کرده و نمایش دهیم. با هوسم همراه باشید.
خواندن فایل اکسل در متلب
قدم اول برای رسم داده های اکسل در متلب، خواندن فایل اکسل در متلب است. پسوند یک فایل اکسلی xls است. اما قبل از خواندن فایل اکسل در متلب، بهتر است کمی با فایل اکسلی که برای این آموزش انتخاب کردیم، آشنا شویم.
آشنایی با داده ها
فایل اکسلی که میخواهیم با آن کار کنیم دارای دو برگه یا sheet است. در برگه اول دادههای مربوط به میزان بارش باران طی دوازده ماه از سال ذخیره شده است. در برگه دوم نیز دمای 40 شهر در دوازده ماه ذخیره شده است (برای دانلود داده اینجا کلیک کنید.). در تصویر زیر نمایی خلاصه از دادههای موجود در این دو برگه را مشاهده میکنید.
![]() |
![]() |
فراخوانی فایل اکسل در متلب با دستور xlsread
اما چگونه فایل اکسلی را در متلب باز کنیم؟ برای خواندن فایلهایی با پسوند xls در متلب از دستور xlsread میتوان استفاده کرد. تا اینجا ما میدانیم که باید از تابع xlsread استفاده کنیم اما نمیدانیم این تابع چه ورودیهایی را میپذیرد. بنابراین بهتر است که از help متلب کمک بگیریم. اگرچه کار با help متلب در ابتدا ممکن است برایتان دشوار باشد، اما یکی از بهترین راهها برای نوشتن یک کد متلب، راهنمایی گرفتن از help متلب است. در جلسه 9 از دوره آموزش رایگان متلب، استفاده از help متلب کامل توضیح داده شده است. در نوار بالای متلب و قسمت search documentation عبارت xlsread را وارد کرده و صفحه documentation مربوط به آن را باز میکنیم.

در صفحه باز شده، ورودیهای مجاز، توضیحات و مثالهایی از هر دستور وجود دارد. در قسمت syntax تمام ورودیهایی که تابع xlsread قبول میکند و در قسمت Description توضیح مربوط به هرکدام آورده شده است.

همانطور که مشاهده میکنید عبارت xlsread(filename) تمامی مقادیر عددی در فایل اکسل مورد نظر را برمیگرداند. برای این کار فقط کافی است که اسم فایل را در قسمت ورودی وارد کنید. دقت داشته باشید که این دستور تنها اطلاعات برگه اول را میخواند.
>> rain = xlsread('climate-data.xls');

با اجرای این دستور تمامی اعداد موجود در برگه اول (که دادههای بارندگی را در خود دارد) در ماتریسی به نام rain ذخیره خواهند شد. متغیر rain پس از اجرای برنامه در پنجره workspace نمایش داده میشود. با دابل کلیک این متغیر را باز کنید. همانطور که مشاهده میکنید این متغیر، یک ماتریس 12*40 از نوع double است، که 40 سطر متناظر با 40 شهر و 12 ستون متناظر با 12 ماه است. همانطور که گفته شد، این متغیر فقط شامل اعداد است و اسامی شهرها وماهها را ندارد.
خواندن اطلاعات برگه دوم برای رسم داده های اکسل در متلب
تا اینجا موفق شدیم که اطلاعات مربوط به بارندگی را در متلب وارد کرده و در متغیر rain بریزیم. اطلاعات مربوط به دما در برگه دوم از فایل اکسل وجود دارد. برای خواندن این برگه باید شماره برگه یا sheet نیز به عنوان ورودی به تابع xlsread داده شود. بنابراین از دستور num = xlsread(filename, sheet) استفاده میکنیم:
>> temp = xlsread('climate-data.xls', 2);
که عدد 2 متناظر با شماره sheet مربوط به اطلاعات دما است.
نکته دستور بالا تنها در صورتی درست اجرا خواهد شد که فایل اکسل و کد متلب هر دو در یک پوشه قرار داشته باشند. در غیر این صورت آدرس کامل فایل اکسل باید به تابع xlsread داده شود.به عنوان مثال اگر فایل اکسل شما در مسیر C: \Downloads\data وجود دارد و با نام climate-data.xls ذخیره شده است، ورودی تابع xlsread باید به شکل زیر تغییر کند.>> rain = xlsread('C:\Downloads\data\climate-data.xls');
تا اینجا اطلاعات موجود در هر دو برگه از فایل اکسل را فراخوانی کرده و اطلاعات عددی آن را ذخیره کردیم. در بخش بعدی به نحوه نمایش این دادهها با استفاده از دستور plot پرداخته میشود. کسانی که با نحوه رسم نمودار با متلب آشنایی دارند، احتمالا میدانند که بهسادگی با متغیرهای rain و temp میتوانیم نمودارهای متنوعی رسم کنیم. اگر هم تا حالا در متلب نمودار رسم نکردید، به پست «رسم نمودار در متلب» حتما سر بزنید.
رسم نمودار در متلب
اولین قدم در رسم داده های اکسل در متلب ، فراخوانی فایل اکسل در متلب است. در بخش قبل یک فایل اکسلی را در متلب فراخوانی کرده و اطلاعات آن را در دو متغیر rain و temp ذخیره کردیم. حالا میخواهیم این دادهها را به کمک متلب نمایش دهیم. برای رسم نمودار تغییرات دما یا بارش برای هر یک از 40 شهر، نیاز است اندیس آن شهر را بدانیم، یعنی بدانیم که چندمین شهر در لیست است. به عنوان مثال شهر توکیو، 37-اُمین شهر در لیست است. برای نمایش نمودار بارندگی توکیو از کد زیر استفاده میکنیم:
>> tokyo_rain = rain(37, :); >> plot(tokyo_rain, 'r--o')
که عبارت rain(37, : ) یعنی سطر 37-ام از متغیر rain و تمامی ستونهای آن. نتیجه اجرای این کد، نموداری به شکل زیر خواهد بود:

فرض کنید بخواهیم میزان بارش در توکیو را با بغداد که چهارمین شهر از لیست است، مقایسه کنیم. در این صورت کد زیر را باید اجرا کنیم:
>> tokyo_rain = rain(37, :); >> plot(tokyo_rain, 'r--o'); >> hold on >> baghdad_rain = rain(4, :); >> plot(baghdad_rain, 'g--o')
دستور hold on باعث میشود که نمودار جدید روی نمودار قبلی نمایش داده شود. با اجرای این کد نمودار زیر را خواهیم داشت.

همانطور که از دو نمودار مشخص است، میزان بارش در توکیو (نمودار قرمز) از بغداد (نمودار سبز) بسیار بیشتر است. به شکل مشابه میتوان رسم نمودار و مقایسه را برای متغیر دما نیز انجام داد.
تا اینجا ما موفق شدیم که یک فایل اکسل را بخوانیم و دادههای آن را استخراج کرده و نمایش دهیم. حالا این سوال پیش میآید که اگر تعداد شهرها به جای 40 تا 4000 تا بود و پیدا کردن اندیس متناظر با هر شهر به همین آسانی نبود چه کار کنیم؟ در بخش بعدی با هم کدی مینویسیم که با داشتن نام شهر بتوان اطلاعات آن را استخراج کرد.
رسم نمودار با داشتن نام شهر [پیشرفته]
در بخش قبل گفته شد که اگر تعداد دادهها زیاد باشد، پیدا کردن اندیس به صورت دستی کاری دشوار است. در این قسمت از آموزش «رسم داده های اکسل در متلب» ، میخواهیم کدی بنویسیم که با داشتن نام شهر، دادههای مربوط به بارندگی و دمای آن شهر را استخراج کند. به این منظور، علاوه بر دادههای عددی باید textها را نیز بخوانیم.
با نگاهی به قسمت Description از documentation مربوط به دستور xlsread، درمییابیم که با استفاده از کد [num, txt, raw] = xlsread(___)میتوانیم علاوه بر دادههای عددی، textها را نیز از فایل اکسل استخراج کنیم. منظورمان این است که در یک فایل اکسل علاوه بر دادههای عددی، ممکن است نوشتههایی برای توصیف هر سطر یا ستون وجود داشته باشد. مثلا در فایل اکسلی که ما در حال بررسی آن هستیم، عبارت ’40 cities’ نشان میدهد که نوشتههای ستونِ زیر آن، نام شهرها هستند. برای استخراج این textها کدهای بخش قبل به شکل زیر باید تغییر کنند.
>> [rain,rain_txt,raw] = xlsread('climate-data.xls');
>> [temp,temp_txt,raw] = xlsread('climate-data.xls', 2);
با اجرای کد بالا، همانند بخش قبل، اطلاعات عددی موجود در برگه اول و دوم در متغیرهای rain و temp ذخیره میشوند. تمامی textهای موجود در برگه اول و دوم از فایل اکسل در متغیرهای rain_txt و temp_txt ذخیره میشوند.
همانطور که مشاهده میشود، این متغیرها سلولهایی با ابعاد 13*42 هستند. در ادامه میخواهیم نام شهرها و نام ماههای سال را از متغیرهای rain_txt و temp_txt استخراج کنیم. میدانیم که نام شهرها در اولین ستون از فایل اکسل قرار دارند بنابراین مینویسیم:
>> rain_txt(:, 1)
با اجرای این کد مشاهده میشود که دو المانِ اول، عبارت ‘Average rainfall (mm)’ و ’40 CITIES’ هستند. بنابراین کد بالا را طوری تغییر میدهیم که دو المان اول انتخاب نشوند و فقط نام شهرها را داشته باشیم:
>> cities = rain_txt(3:end, 1)
بدین ترتیب اسامی تمام شهرها در متغیر cities ذخیره میشوند.
استخراج اندیس شهرها با استفاده از دستور find در متلب
حال فرض کنیم مثلا بخواهیم اطلاعات بارش باران و دمای شهر اسلامآباد را استخراج کنیم. برای به دست آوردن اندیس شهر از کد زیر استفاده میکنیم:
>> index = find(contains(cities, 'ISLAMABAD'))
با اجرای این کد، اسم شهر مورد نظر ما (در اینجا اسلامآباد)، با تمامی المانهای سلول cities مقایسه شده و اندیس آن به دست میآید. این اندیس در متغیر index ذخیره میشود. با داشتن اندیس، مشابه بخش قبل میتوانیم اطلاعات مورد نظر خودمان را استخراج کنیم:
>> plot(rain(index, :), 'r--o')
با اجرای کد بالا، اطلاعات مربوط به بارش باران شهر اسلامآباد نمایش داده میشود. به طور مشابه میتوان اطلاعات باران و دمای سایر شهرها را نیز استخراج نمود.
جمعبندی رسم داده های اکسل در متلب
قدم اول در رسم داده های اکسل، خواندن فایل اکسل در متلب است. در این پست یاد گرفتید که چطور با دستور xlsread، فراخوانی فایل اکسل در متلب را انجام دهید. و چگونه با دستور plot، این دادهها را رسم کنید. امیدوارم این پست مورد توجه شما قرار گرفته باشد. سوالات و نظرات خود را حتما برایمان کامنت کنید. خدانگهدار…
مطالب زیر را حتما مطالعه کنید
تعریف متغیر در متلب
آموزش متلب رایگان
دستور max در متلب
دستور محاسبه انتگرال در متلب
دستور input در متلب
دستور ezplot در متلب
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.


با سلام من می خواستم رسم نمودار بکشم تو نتلی این خطا رو میده Undefined function or variable ‘data’.
با اینکه داده هامو اوردم تو متلب اگه امکان داره راهنمایی بفرمایید. ممنون
>> plot(data(:,1),data(:,2)) این دستور رو وارد می کنم
سلام
بهنظر میرسه دو ستون از متغیر data رو به دستور plot دادید. اما خطا بهتون گفته من متغیر بنام data پیدا نمیکنم. یعنی اصلا متغیر data در کدتون ندارید. اگر هم دادههاتون رو وارد متلب کردید، در متغیری بنام data نریختید.
موفق باشید…