گام هفدهم: وارد کردن داده
در متلب وارد کردن داده به معنی بارگزاری داده از فایل خارجی است. تابع importdata اجازه بارگیری فایل ها با داده های مختلف از فرمت های متفاوت را می دهد.
تابع و توصیف | شماره |
a = importdata(filename) بارگذاری داده به آرایه a از فایل توسط filename مشخص می شود. |
1 |
a = importdata(‘- pastspecial’) داده را از حافظه کلیپ برد نسبت به یک فایل بارگذاری می کند. |
2 |
a = importdata(___ ,delimiterln) delimiterln به عنوان جداکننده ستونی در فایل اسکی، نام فایل و داده حافظه کلیپ برد تفسیر می شود، |
3 |
a = importdata(___ ,delimiterln,headerlinesln) داده از فایل اسکی، نام فایل، یا حافظه کلیپ برد بارگذاری می کند ، داده عددی شروع شده ازline headerlinesln+1 را می خواند. |
4 |
[a,delimiterout,headerlinesout] = importdata(__) علاوه بر برگرداندن یافتن کاراکتر delimiter برای ورودی فایل اسکی در delimiterout و یافتن تعدادی از header line در headerlinesout، از هر آرگومان ورودی در نحوه اجرا در متلبقبلی استفاده شده است.
|
5 |
به طور پیش فرض، octav اختصاص به پیشتیانی برای () importdataندارد، بنابراین شما بسته زیر را برای ایجاد نمونه های کار با نصب actave جستجو و نصب کنید.
مثال
اجازه دهیدفایل تصویری را بارگذاری و نمایش دهیم.یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:
filename =‘ smile . jpg‘;
a = impo:ict:dat:a(filename);
image (a) ;
زمانی که شما فایل را اجرا می کنید ، متلب این فایل تصویری را نشان می دهد، شما باید آن را در فهرست جاری ذخیره نمایید.
مثال2
در این مثال، ما یا فایل متنی را ، جداکننده مشخص و عنوان ستون را وارد می کنیم. به ما اجازه دهید یک فایل اسکی فضا – حد و مرز مشخص شده با عناوین ستون، با نام اطلاعات هفتگی ایجاد کنیم.
فایل متنی weeklydata.txt شبیه این است:
یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:
filename =‘weeklydata.txt‘;
delimitexln =‘ ‘;
headexlinesln =l;
a = impoxtdata(filename,delimitexln,headexlinesln);
%view data
for k =[l:7]
disp(a.c0lheadexs{l, k})
disp(a.data(:, k))
disp(‘ ‘)
end
زمانی که شما فایل را اجرا می کنید، نتیجه زیر نشان داده می شود:
مثال 3
در این مثال، به ما اجازه دهید داده را از کلیپ برد وارد نماییم.
خطوط زیر را به کلیپ برد کپی کنید:
ریاضیات ساده است
یک فایل اسکریپت ایجاد نمایید و کد زیر را در آن تایپ نمایید:
a = importdata(‘-pastespecial’)
زمانی که فایل را اجرا می کنید نتیجه زیر نشان داده می شود:
فایل i/o(ورودی / خروجی) سطح – پایین
تابع importdata یک تابع سطح بالا است.. توابع i/o سطح پایین در متلب اجازه کنترل بیشتر بر روی خواندن و نوشتن داده در فایل را می دهد.اگرچه، توابع به جزئیات اطلاعات بیشتری درباره فایل برای کار موثر نیاز دارند.
متلب توابع زیر را برای عملیات خواندن و نوشتن در سطح بایت و کاراکتر فراهم آورده است:
توصیف | تابع |
بستن یا بازکردن تمامی فایل ها | fclose |
تست برای انتهای فایل | feof |
اطلاعات درباره خطاهای فایل i/o | ferroe |
خواندن خطی از فایل، حذف کردن کاراکترهای خط جدید | fgetl |
خواندن خطی لز فایل، نگهداشتن کاراکترهای خط جدید | fgets |
بازکردن فایل، یا بدست آوردن اطلاعات درباره فایل های باز | fopen |
نوشتن داده در فایل متنی | fprintf |
خواندن داده از فایل دودویی | fread |
انتقال اشاه گر موقعیت فایل به آغاز فایل باز | frewind |
خواندن داده از فایل متنی | fscanf |
انتقال به موقعیت مشخص شده در فایل | fseek |
موقعیت در فایل باز | ftell |
نوشتن داده به فایل باینری | fwrite |
ورود فایل های داده متنی با سطح – پایین i/o
متلب توابع زیر را برای ورود فایل های داده متنی فراهم کرده است:
- تابع scanf قالب های ئائه در متن یا فایل اسکی را می خواند.
- توابع fgetl و fgets یک خط از یک فایل را در یک زمان می خوانند، که کاراکتر خط جدید را از هر خط جدا می کند.
- تابع fread یک جریان از داده در سطح بیت یا بایت را می خواند.
مثال
ما یک فایل داده متنی ‘myfile.txt’ در فهرست کار خود ذخیره کردیم. این فایل داده بارندگ را برای سه ماه ذخیره می کند؛ june،july،agust برای سال 2012.
داده در myfile.txt با مجموعه ای از زمان های تکراری ماه و میزان بارش پنج مکان قرار گرفته شده است. داده header تعداد ماه های m را ذخیره می کند؛ بنابراین ما m مجموعه از اندازه گیری ها داریم.
این فایل شبیه این است:
ما داده را از این فایل وارد می کنیم و داده را نمایش می دهیم.مراحل زیر را انجام دهید:
- فایل را با تابع fopen بازکنید و تعیین کننده فایل را بگیرید.
- داده را در فایل با قالب specifiers ، مانند ‘%s’ برای رشته،’%d’ برای اعداد صحیح،یا ‘%f’ برای ارقام ممیز شناور توصیف نمایید
- برای رفتن به کاراکترهای تحت الفظی در فایل، شامل آن ها در قالب تشریح است. برای رفتن به یک میدان داده، از علامت ستاره (‘*’) استفاده می شود.
برای مثال، با خواندن header ها و برگرداندن مقدار مجرد برای m می می نویسیم:
- به طور پیش فرض،fscanf داده را بر اساس فرمت توصیفی ما تا زمانی که با قالب توصیفی داده مطابقت ندارد، یا به انتهای فایل رسیده است می خواند.در اینجا ما برای حلقه برای خواندن سه مجموعه از داده در هر زمان استفاده خواهیم کرد، که 7 سطر و پنج ستون را می خواند.
- ما می خواهیم ساختاری با نام mydata در فضای کاری برای ذخیره داده خوانده شده از یک فایل استفاده کنیم.ساختار سه زمان – دقیق، ماه و اطلاعات باران را دارد.
یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ کنید:
filename =‘/data/myfi1e.txt‘;
rows =7;
cols =5;
% open the file
fid = fopen(filename);
% read the file headers, find m (number of months)
m = fscanf(fid,‘%*s %*s\n%*s %*s %*s %*s\nm=%d\n\n‘,1);
% read each set of measurements
for n =1:m
mydata(n).time = fscanf(fid,‘%s‘,1);
mydata(n).month = fscanf(fid,‘%s‘,1);
% fscanf fills the array in column order,
% so transpose the results
mydata(n).raindata =…
fscanf(fid,‘%f‘,[rows, cols]);
end
for n =1:m
disp(mydata(n).time), disp(mydata(n).month)
disp(mydata(n).raindata)
end
% close the file
fclose(fid);
زمانی که شما فایل را اجرا می کنید، نتیجه زیر نشان داده می شود:
خرید کتاب 28 گام موثر در فتح متلب
سلام.کتابتون الکترونیکی هست یا چاپی؟