آموزش صفر تا 100 کار با فایل اکسل در متلب بصورت کاربردی
در این مقاله قصد داریم به خواندن و نوشتن فایل اکسل در متلب بپردازیم که اغلب کسانی که با نرمافزار متلب آشنایی دارند، احتمالا قبل از آن با اکسل آشنایی دارند و میدانند که این نرمافزار بسیار پرکاربرد برای همه رشتهها و علوم مهندسی میباشد.
در این مقاله قصد داریم بیان کنیم که اولا اگر اطلاعاتی در فایل اکسل داشته باشیم و بخواهیم از آنها در فایل متلب خود استفاده کنیم چگونه باید این اطلاعات را از فایل اکسل خود فراخوانی نماییم.
در مرحله بعد فرض کنید که شما کدی را در متلب نوشتهاید و میخواهید خروجی آن را در فایل اکسل مشاهده کنید و اصطلاحا میخواهید این نتایج را در اکسل بنویسید.
در این مقاله کار با فایلهای اکسل را به طور کامل و بصورت کاملا کاربردی به شما آموزش خواهیم داد و در انتهای این مقاله و با صرف وقت بسیار کمی قادر خواهید بود به راحتی با خواندن و نوشتن فایل اکسل در متلب آشنا شوید.
پس با ما همراه باشید…
همچنین به شما توصیه میکنیم به مراجعه به صفحه « آموزش متلب » از دیگر آموزشهای تخصصی نرمافزار متلب بهرهمند شوید.
خواندن فایل اکسل در متلب – دستور xlsread در متلب
برای خواندن فایل اکسل از دستور xlsread در متلب استفاده میشود.
در حالت بسیار ساده فرض کنید که تعدادی عدد در فایل اکسل دارید، این اعداد میتوانند ورودیهای یک مدل برای انجام تحلیل موردنظر شما باشند و کافی است آنها را یک بار در برنامه خود تعریف نمایید و هربار که اطلاعات فایل اکسل را تغییر دهیم با ران کردن مجدد برنامه نتایج بر طبق ورودیهای جدید تغییر خواهد نمود.
در حالت بسیار ساده شما میتوانید یک خروجی از دستور xlsread در متلب بگیرید و در ورودی نام فایل اکسل را به دستور داده تا اطلاعات فایل را استخراج نماید.
در یک مثال بسیار ساده خواندن فایل اکسل در متلب را شروع میکنیم.
فرض کنید اطلاعات ما داخل فایل اکسل بصورت اعداد زیر است :
به راحتی میتوانیم این اعداد را با دستور زیر وارد نرمافزار متلب نماییم :
1 |
num = xlsread('MyExample.xlsx') |
در دستور بالا دقت نمایید حتما نام فایل در داخل استرینگ (‘ ‘) قرار گیرد.
حالا اگر فایل num را باز نمایید اطلاعات فایل اکسل به متلب وارد شده است.
اما فرض نمایید که چندین شیت (Sheet) در فایل اکسل داریم حالا با اجرای این دستور کدام شیت برای ما خوانده میشود؟ در پاسخ به این سوال باید گفت که اگر فقط نام فایل را به دستور xlsread بدهیم تنها شیت اول فایل اکسل برای ما خوانده میشود.
بعد از اینکه با این دستور آشنا شدید در مرحله بعد با جزئیات این دستور به طور کامل آشنا خواهیم شد.
اعمال تنظیمات بیشتر برای خواندن فایل اکسل درمتلب
برای اعمال تنظیمات و جزئیات بیشتر برای خواندن فایل های اکسل در متلب باید با حالت کلی استفاده از این دستور آشنا شویم.
در حالت عمومی و رایج استفاده از این دستور میتوان برای آن سه ورودی و سه خروجی تعریف کرد.
در ورودی اول همان نام فایل، در ورودی دوم اسم شیت موردنظر در فایل اکسل ( اگر چندین شیت داشته باشیم) و در ورودی سوم رنج دادههای موجود در یک شیت، داده میشود. توضیحات بیشتر در ادامه بیان خواهد شد.
در مورد خروجیهای دستور xlsread ، خروجی اول همان اعداد میباشد که در مثال اول بیان کردیم؛ خروجی دوم فایلهای متنی میباشد و خروجی سوم هر دو با هم را شامل میشود.
لازم به ذکر است که این خروجیها به جزء خروجی اول که بصورت عدد و آرایه double میباشد؛ بصورت آرایه سلولی خواهند بود.
در یک مثال میخواهیم به طور کامل با این جزئیات آشنا شویم :
فرض کنید اطلاعات ورودی یک مدل مانند ورودی مدل تحلیل یک خرپا سه بعدی به صورت زیر میباشد :
البته ممکن است در یک همچین مثالی ما به اطلاعات متنی نیازی نداشته باشیم اما برای یادگیری بیشتر این کار را انجام میدهیم.
کد گرفتن اطلاعات بصورت کامل در پایین آمده است:
1 |
[num , text , row ] = xlsread('MyExample.xlsx','Sheet1','A1:G17') |
درباره استفاده از این دستور این نکات قابل ذکر است :
1- بعد از استفاده از ورودی اسم فایل نام شیت موردنظر میآید که در اینجا به نام Sheet1 بوده و بعد از آن رنج دادهها میآید که میدانید در فایل اکسل سطرها با اعداد و ستونها با حروف مشخص شدهاند. در اینجا از سلول اول تا سلول آخر را مد نظر قرار دادیم.
2- اگر رنج اعداد را به عنوان ورودی نمیدادیم کل اطلاعات آن شیت را در نظر میگرفت که در اینجا چون کل اعداد را در بازه قرار دادهایم، تفاوتی ایجاد نمیشود.
3- اگر بخواهیم یک بخش از ورودیها را وارد نکنیم یا به عبارتی همان مقدار پیشفرض باشد از ‘ ‘ استفاده میکنیم.
مثلا فرض کنید که کلا یک شیت در فایل اکسل دارید و میخواهید همان را فراخوانی کنید اما فقط رنج خاصی از آن را کافی است بعد از وارد کردن اسم فایل به جای نام شیت از ‘ ‘ استفاده نماییم و در ورودی سوم در صورت نیاز رنج موردنظر را وارد نماییم.
لازم به ذکر است که اگر ورودی که نمیخواهیم ورودی آخر باشد؛ نیازی به استفاده از ‘ ‘ نیست.
خروجی ها را در ادامه نمایش میدهیم که نشان دهیم خروجی اول با نام num فقط اعداد موجود را شامل میشود که فرمت num در متلب بصورت double میباشد.
در خروجی text همانطور که در تصویر زیر مشاهده میکنید فقط فایلهای متنی وجود دارند و دیگر اعداد در آن وجود ندارند.
و در خروجی row هم اعداد و هم فایلهای متنی با هم حضور دارند که حالت کاملتری میباشد.
لازم به تکرار مجدد است که نوع خروجیهای row و text از جنس دادههای سلولی میباشد.
دقت نمایید در برخی از سلولها عبارت NaN نوشته شده که به معنای این است که در این سلول عبارتی وجود ندارد که خودمان در فایل اکسل این مکانها را خالی گذاشتهایم و عبارتی در آن تعریف نکردهایم.
شما میتوانید برای استفاده از اعداد و یا متنهای خاص فقط قسمتهایی را در نظر بگیرید که موردنظر شما میباشد و قسمتهای اضافی را با تعریف یک ورودی دیگر حذف نمایید.
از دیگر خدمات ما در گام98 پروژه های آماده میباشد که شما میتوانید با مراجعه به صفحه « پروژه متلب » آنها را دانلود نمایید.
استفاده خاص برای خواندن فایل اکسل درمتلب – دستور xlsread در متلب
برای خواندن فایل اکسل در متلب در یک حالت خاص میتوانیم تغییرات خاصی برروی دادههای خوانده شده از فایل اکسل وارد کنیم.
در حالت کلی این دستور پنج ورودی و چهار خروجی خواهد داشت که ورودی و خروجی اول تا سوم در قسمت قبل به طور کامل توضیح داده شده است. در بخش قبلی حالت عمومی آن را گفتیم که بیشتر استفاده میشود.
ورودی چهارم عبارت ‘basic’ میباشد که همیشه ثابت است و نکته خاصی ندارد و ورودی پنجم تابع پردازش میباشد که این تابع در واقع تغییرات خاصی را برروی عبارت خوانده شده از فایل اکسل اعمال میکند که در یک مثال بیشتر درباره آن توضیح خواهیم داد.
در این نوع استفاده خاص از دستور xlsread در متلب اما خروجی چهارم در این حالت در واقع شمارهی درایههایی است که این تابع برروی آن اعمال شده است.
در یک مثال میخواهیم با نحوه استفاده از تابع پردازش به طور کلی آشنا شویم که البته در حالت عمومی کمتر از این توابع استفاده میکنیم.
دادههای زیر را در فایل اکسل در نظر بگیرید:
این اعداد بصورت تصادفی بین صفر تا یک تولید شدهاند.
اگر میخواهید با تولید اعداد تصادفی در متلب به طور کامل آشنا شوید، توصیه میشود مقاله « تولید عدد تصادفی در متلب » را مشاهده نمایید.
حال یک تابعی بصورت زیر تعریف میشود که این تابع کاری که انجام میدهد این است که همه اعداد را به بازه بین 0.2 تا 0.8 تبدیل کند البته در صورتی که در این بازه نباشند. البته این تابع برطبق یک استاندارد خود متلب برای این دستور تعریف شده است. این تابع بصورت زیر است :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
function [Data,indices] = setMinMax(Data) minval = 0.2; maxval = 0.8; indices = []; for k = 1:Data.Count v = Data.Value{k}; if v > maxval Data.Value{k} = maxval; indices = [indices k]; elseif v < minval Data.Value{k} = minval; indices = [indices k]; end end |
در ادامه با استفاده از دستور xlsread و تابع تعریف شده در بالا به مورد مدنظر خواهیم رسید :
1 |
[trim,txt,raw,idx] = xlsread('myExample.xlsx','MyData','','',@setMinMax); |
همانطور که مشاهده میکنید ورودی اول به جای عبارت num از عبارت trim استفاده شده که به معنای ایجاد تغییر در دادههای ورودی میباشد البته اسم متغیر اهمیتی ندارد و فقط برای درک بیشتر تغییر داده شده است.
دادههای trim و idx به ترتیب بصورت زیر میباشد:
همانطور که ملاحظه مینمایید دادهها در رنج موردنظر تغییر کردهاند و همچنین در دادههای idx شماره سلولهای تغییریافته را مشاهده میکنید.
در کدنویسی فوق از تعریف تابع در متلب استفاده شده است. چنانچه با آن آشنایی ندارید و یا میخواهید با تعریف کردن توابع در متلب بطور کامل آشنا شوید، توصیه میکنیم مقاله « تعریف تابع در متلب » را مشاهده نمایید.
نوشتن فایل متلب در اکسل- دستور xlswrite در متلب
در ادامه کار با فایلهای اکسل در نرمافزار متلب فرض کنید که میخواهیم خروجی نتایج یک مدل را به فایل اکسل وارد کنیم و یا به طور کلی میخواهیم عبارتی را از متلب در فایل اکسل بنویسیم برای اینکار از دستور xlswrite در متلب استفاده میکنیم.
برای استفاده دستور xlswrite در متلب مشابه با دستور xlsread عمل میکنیم به این صورت که در ورودی اول نام فایل اکسل ، در ورودی دوم به جای نام شیت، عبارتی را که میخواهیم در فایل اکسل بنویسیم وارد میکنیم و در ورودی سوم نام شیت و در ورودی بعدی میتوانیم رنج قرارگیری در فایل اکسل را مشخص نماییم.
لازم به ذکر است که برای نوشتن عبارتها در فایل اکسل دو ورودی اول اجباری و لازم میباشد و بقیه ورودیها اختیاری میباشد.
چون با کلیات استفاده از این دستورات آشنا شدیم میخواهیم با یک مثال کامل استفاده از این دستور را به شما آموزش دهیم:
فرض کنید نتایج یک تحلیل شامل سه خروجی تنش ، جابهجایی و نیروهای عکسالعمل میباشد. برای اینکه در بالای هر ستون نام مولفه مربوطه نوشته شود ابتدا نتایج را به که بصورت عددی هستند به فایل سلولی تبدیل کرده و سپس اسم و اعداد مربوطه به هر مولفه را با هم ادغام میکنیم .
بردارهای R (نیروهای عکسالعمل)، S (تنشها) و D (جابهجاییها) بصورت زیر است:
[R = [ 0 -10000 0 270.92 0 203.191 1354.60 0 -1015.95 0 7968.08 0 -1625.53 2031.91 812.76
[ D = [ -3.02E-05 -0.000151773 2.69E-05 0 0 0 0 0 0 0 0 0 0 0 0
[S = [ -338652.236 -1693261.18 -7968086.584 -2726097.914
برای وارد کردن این اعداد کد را با استفاده از دستور xlswrite در متلب بصورت زیر مینویسیم:
1 2 3 4 5 6 7 8 |
Hedears={'Reaction','Displacement','Stress'}; Reaction=num2cell(R); xlswrite('Truss3D.xlsx',[Hedears{1}; Reaction ],'results','A'); Displacement=num2cell(U); xlswrite('Truss3D.xlsx',[Hedears{2}; Displacement ],'results','B'); Stress=num2cell(S); xlswrite('Truss3D.xlsx',[Hedears{3}; Stress ],'results','C'); |
همانطور که میبینید در ورودی دوم دستور xlswrite نام هر مولفه و ورودیها آن با استفاده [ ] اصطلاحا به هم الحاق شدهاند که قبل از آن ابتدا اعداد با استفاده از دستور num2cell به آرایه سلولی تبدیل شدهاند تا بتوان آنها را با اسم هر مولقه الحاق نمود.
همچنین ورودی سوم نام شیت موردنظر میباشد که یک نام دلخواه است و همچنین ورودی چهارم در واقع مکان قرارگیری هر داده میباشد. به عنوان مثال داده Reaction در ستون A در اکسل ذخیره میشود.
همچنین لازم به ذکر است که اگر فایل اکسلی با نام مشخص شده وجود نداشته باشد، نرمافزار به طور خودکار یک فایل اکسل با نام تعیین شده ایجاد میکند و فایلهای مشخص شده را داخل آن مینویسد.
این نتایج در فایل اکسل بصورت زیر مشاهده خواهد شد:
در پایان امیدوارم بتوانید به راحتی از اکسل برای وارد کردن اطلاعات به متلب و همچنین گرفتن خروجیها از متلب و نمایش آن در فایل اکسل استفاده نمایید.
در صورت هرگونه مشکل و یا سوالی در این موضوع میتوانید در همین صفحه سوال خود را مطرح بفرمایید.
مطالب زیر را حتما مطالعه کنید
کار با بردارها در متلب
آموزش کامل انواع دستورات توزیعهای آماری در متلب
در این مقاله قصد داریم انواع دستورات مهم توزیع های آماری در متلب را به همراه رسم انواع توزیعها و برازش با استفاده از توزیع های آماری بیان نماییم.
آموزش صفر تا 100 تحلیل المان میله به روش اجزا محدود
در ادامه دومین سری از آموزشهای روش المان محدود در این مقاله تحلیل المان میله به روش اجزا محدود را همراه با مثال به طور صفر تا صدی آموزش خواهیم داد.
آموزش جامع و کامل تحلیل المان فنر به روش اجزا محدود
در اولین مجموعه از مقالات آموزشی روش اجزا محدود، آموزش جامع و کامل تحلیل المان فنر به روش المان محدود را همراه با مثال برای شما عزیزان بیان خواهیم کرد.
روش اجزا محدود – Finite Element Method
روش اجزا محدود یک روش عددی برای حل مسائل مهندسی و فیزیکی میباشد. در این مقاله به طورکلی با کاربرد، تاریخچه و مراحل حل این روش آشنا خواهیم شد.
آموزش جامع انواع دستورات توزیع نرمال در متلب
در این مقاله انواع دستورات توزیع نرمال در متلب را به شما آموزش میدهیم.همچنین نحوه کار با توزیع های نرمال تک متغیره و چند متغیره را با جزئیات خواهید آموخت.
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
با سلام و احترام
ممنون از مطالب اموزنده و کاربردیتون
اگر بخواهیم در یک سطر و یک ستون مشخص ( مثلا سطر5 و ستون8) داده ها رو اعمال کنیم چگونه از دستور xlswrite استفاده میشود؟
با سلام و احترام
برای این کار بایستی شماره سطر و نام ستون رو در دستور تایپ بفرمائید. مثلا در مثال زیر داده ها در ستون E و سطر شماره 1 ذخیره میشوند:
filename = ‘testdata.xlsx’;
A = {‘Time’,’Temperature’; 12,98; 13,99; 14,97};
sheet = 2;
xlRange = ‘E1’;
xlswrite(filename,A,sheet,xlRange)