خواندن داده های ورودی از فایل متنی در متلب
گاهی در برنامه نویسی متلب نیاز است داده ها را نه مستقیم از کاربر بلکه به طور غیر مستقیم و از طریق فایلهای متنی یا باینری باز خوانی کنیم. این کار معمولا در مواقعی که قرار باشد با دیگر نرم افزارهای تحلیلی و محاسباتی ارتباط برقرار کنیم بسیار مفید خواهد بود.
در برنامه ی امروز قصد دارم تابع سینوس را از طریق یک فایل متنی شامل داده های ورودی رسم کنم. ابتدا با کمک خود متلب داده های مورد نظر را به صورت زیر تولید می کنم:
clc;
x=-pi:pi;
for n=1:length(x)
fprintf(‘%8.4f\n’,x(n))
end
که خروجی زیر را خواهد داشت :
-3.1416
-2.1416
-1.1416
-0.1416
0.8584
1.8584
2.8584
نتایج حاصل را می توانید مستقیما به notepad منتقل کرده و با فرمت txt ذخیره کنید.اما اگر بخواهید از طریق خود متلب این فایل را بسازیر از دستور save به صورت زیر استفاده می کنیم:
save(‘mysindata.txt’,’x’,’-ascii’)
این فرمان متغیر x را در فایل متنی mysindata.txt دخیره می کند. توجه داشته باشید که اگر گزینه ی –ascii را وارد نکنید داده های شما به صورت باینری ذخیره می شوند و فقط MATLAB قادر خواهد بود آن ها را بازخوانی کند. معمولا بهتر است داده ها به صورت متنی از نوع ascii باشند تا بتوانید بدون نیاز به برنامه ی خواصی آن ها مشاهده کنید.
حال برنامه ی جدیدی می نویسیم که داده هایش را از روی این فایل بازخوانی کند و نمودار sin را رسم کند:
clc
fid = fopen(‘mysindata.txt’, ‘r’);
a = fscanf(fid, ‘%f’, [1 inf])
% It has one row.
plot(a,sin(a))
fclose(fid)
کار فرمان fopen باز کردن فایل و آماده سازی آن برای باز خوانی است.گزینه ی r در انتهای فرمان به معنی reading است وبا کمک آن شما به متلب ذکر می کنید که فقط اجازه ی خواند فایل را دارد.
فرمان fscanf کارش خواندن داده ها و انتقال آنها به ماتریس مانند a است.در اینجا ما فقط یک ستون از داده ها را در اختیار داشتیم و درست همانند حالاتی که هنگام استفاده از fprintf پیش می آید می توانید با آن کار کنید. در انتهای فرمان [1 inf] به متلب می گوید که یک ستون را تا انتها بخواند.
*داده ها در متغیری با نام a ذخیره شده اند تا مطمئن باشید که تابع sin از x برای رسم استفاده نکرده است.
a =
-3.1416 -2.1416 -1.1416 -0.1416 0.8584 1.8584 2.8584
برای حالتی که بیشتر از یک متغیر داریم برای ذخیره اعداد به صورت زیر عمل می کنیم :
save(‘mydata.txt’,’x’,’y’,’-ascii’)
همچنین برای بازخوانی داده ها از فایل دستور fscanf به صورت زیر تغییر می کند :
a = fscanf(fid, ‘%f %f’, [2 inf]) % It has two row.
مقاله متلب,مطلب,متلب,مقاله برق,مقاله قدرت,مقاله مطلب,مقاله سیمولینک,دانلود متلب,دانلود مقاله متلب,مقالهmatlab ,آموزش متلب,مطلب,متلب,آموزش برق,آموزش قدرت,آموزش مطلب,آموزش سیمولینک,دانلود متلب,دانلود آموزش متلب,آموزشmatlab ,پروژه متلب,مطلب,متلب,پروژه برق,پروژه قدرت,پروژه مطلب,پروژه سیمولینک,دانلود متلب,دانلود پروژه متلب,پروژهmatlab ,