فایلهای متنی (مانند .txt, .csv, .dat) یکی از پایهایترین و پراستفادهترین فرمتها برای ذخیره و تبادل دادهها هستند. متلب ابزارهای متنوعی برای خواندن دادهها از این فایلها به درون محیط خود و همچنین نوشتن دادهها و نتایج محاسبات به صورت فایل متنی در اختیار شما قرار میدهد. این قابلیت برای کار با دادههایی که در فرمتهای ساده ذخیره شدهاند یا نیاز به اشتراکگذاری با نرمافزارهای دیگر که از فایلهای متنی پشتیبانی میکنند، ضروری است.
ورود داده از فایلهای متنی به متلب
برای خواندن دادهها از فایلهای متنی، متلب رویکردهای مختلفی دارد که بسته به ساختار فایل (مانند جدا شده با کاما، تب، یا فاصله) و نوع دادهها (عددی، متنی، ترکیبی) میتوانید از آنها استفاده کنید.
۱. خواندن دادههای جدولی (Recommended: readtable)
- مفهوم: این تابع بهترین گزینه برای خواندن فایلهایی است که دادهها در آنها به صورت جدولی سازمانیافتهاند، مانند فایلهای
.csv(Comma Separated Values) یا فایلهای متنی که ستونهای آنها با جداکنندههای مشخص (مانند کاما، سمیکالن، یا تب) از هم جدا شدهاند.readtableدادهها را به صورت یک ساختارtableدر متلب میخواند که انعطافپذیری بالایی دارد. - کاربرد: فایلهای
.csv، فایلهای.txtبا ساختار جدولی منظم، دادههایی که هم شامل اعداد و هم متن هستند. - نحوه استفاده:
T = readtable('نام_فایل_شما.csv'); - شما میتوانید جداکننده ستونها (
'Delimiter')، اینکه آیا سطر اول شامل نام ستونهاست ('ReadVariableNames') و گزینههای دیگر را مشخص کنید.
۲. خواندن دادههای جدولی با جداکننده مشخص (readmatrix, dlmread, textscan)
- مفهوم: این توابع برای خواندن فایلهای متنی که دادهها در آنها با کاراکترهای خاصی (مانند کاما، تب، یا فاصله) از هم جدا شدهاند، استفاده میشوند.
readmatrix(یاreadmatrixدر نسخههای جدیدتر) دادهها را به صورت ماتریس عددی میخواند.dlmread(قدیمیتر) مشابهreadmatrixعمل میکند.textscanانعطافپذیری بیشتری دارد و به شما امکان میدهد تا هر ستون را با فرمت خاص خود بخوانید (عددی، متنی، تاریخ و…).- کاربرد: فایلهای متنی ساده، دادههایی که نیاز به کنترل دقیق بر فرمت خواندن هر ستون دارند.
- نحوه استفاده:
M = readmatrix('نام_فایل_شما.txt');M = dlmread('نام_فایل_شما.txt', ',');(جداکننده کاما)data = textscan(fid, '%f %s %f', 'Delimiter', ',');(برای خواندن یک عدد، یک رشته متنی، و یک عدد دیگر، با جداکننده کاما)
۳. خواندن خط به خط (fgetl, fgets)
- مفهوم: این توابع به شما امکان میدهند تا محتوای فایل متنی را خط به خط بخوانید. این روش برای فایلهایی که ساختار منظمی ندارند یا نیاز به پردازش اولیه قبل از تبدیل به ساختار دادهای دارید، مفید است.
- کاربرد: فایلهای گزارش، فایلهای لاگ (log)، یا زمانی که میخواهید هر خط را به صورت مستقل پردازش کنید.
- نحوه استفاده:
- ابتدا فایل را باز میکنید:
fid = fopen('نام_فایل_شما.txt', 'r'); - سپس خط به خط میخوانید:
line = fgetl(fid); - در نهایت فایل را میبندید:
fclose(fid);
خروج داده به فایلهای متنی
نوشتن دادهها و نتایج محاسبات به صورت فایل متنی، یکی از اساسیترین روشها برای ذخیره خروجیها و اشتراکگذاری آنها با دیگر سیستمها یا کاربران است.
۱. نوشتن دادههای جدولی (Recommended: writetable)
- مفهوم: اگر دادههای شما در قالب
tableهستند،writetableبهترین گزینه برای نوشتن آنها در فایلهای متنی مانند.csvیا.txtاست. این تابع به شما امکان میدهد تا جداکننده ستونها، نام سرستونها و سایر گزینهها را مشخص کنید. - کاربرد: ذخیره نتایج جدولی، ایجاد فایلهای
.csvبرای استفاده در اکسل یا سایر نرمافزارها. - نحوه استفاده:
writetable(T, 'نام_فایل_خروجی.csv'); - میتوانید جداکننده را مشخص کنید:
writetable(T, 'نام_فایل_خروجی.txt', 'Delimiter', '\t');(برای جداکننده تب)
۲. نوشتن دادهها به صورت ماتریس یا متن (fprintf, dlmwrite)
- مفهوم:
fprintf: این تابع بسیار قدرتمند است و به شما اجازه میدهد تا دادهها را با فرمت دلخواه (مانند اعداد اعشاری با تعداد ارقام مشخص، رشتههای متنی) در فایل بنویسید. این تابع برای کنترل دقیق بر نحوه نمایش خروجی بسیار مفید است.dlmwrite(قدیمیتر): برای نوشتن ماتریسهای عددی در فایلهای متنی با جداکنندههای مشخص استفاده میشود.- کاربرد: ایجاد فایلهای متنی با فرمت خاص، نوشتن نتایج عددی ساده، نوشتن دادهها به صورت خط به خط.
- نحوه استفاده:
fprintf(fid, '%f,%f\n', data(:,1), data(:,2));(نوشتن دو ستون ماتریس با جداکننده کاما و رفتن به خط بعد)dlmwrite('نام_فایل_خروجی.txt', M, ',');
۳. نوشتن خط به خط (fputs, fprintf)
- مفهوم: مشابه خواندن خط به خط، میتوانید با استفاده از این توابع، متن یا دادههای پردازش شده را خط به خط در یک فایل متنی بنویسید.
- کاربرد: ایجاد فایلهای پیکربربندی، نوشتن گزارشهای متنی، ذخیره خروجیهای پردازشی که نیاز به ساختار خطی دارند.
- نحوه استفاده:
- ابتدا فایل را باز میکنید:
fid = fopen('نام_فایل_خروجی.txt', 'w'); - سپس خط به خط مینویسید:
fprintf(fid, 'این خط اول است.\n'); - در نهایت فایل را میبندید:
fclose(fid);
کار با فایلهای متنی در متلب، انعطافپذیری بالایی را برای مدیریت دادهها فراهم میکند و آن را به ابزاری اساسی برای هر کاربر متلب تبدیل مینماید.
کلیدواژه ها : تبادل داده متنی-فایل txt متلب-فایل csv متلب-خواندن فایل متنی-نوشتن فایل متنی-تابع dlmwrite-تابع fprintf-متن در متلب-