آموزش متلب (MATLAB)
۵۴۳ آموزش
نمایش دسته بندی ها (۵۴۳ آموزش)

خواندن اطلاعات یک فایل متنی، از یک خط مشخص به بعد، با دستورهای fopen و textscan ، در متلب (MATLAB)

معمولا در فایل های متنی، قبل از ذخیره اطلاعات اصلی، چند خط توضیحات نوشته می شود تا افرادی که بعدا فایل را استفاده می کنند، ساختار آن را متوجه بشوند (به این خطوط، header گفته می شود). بنابراین هنگامی که می خواهیم اطلاعات آن فایل را با نرم افزار متلب (MATLAB) بخوانیم، باید اعلام کنیم که چند خط اول فایل، توسط متلب (MATLAB) خوانده نشود. این مورد را با یک مثال شرح می دهیم :

مثال

فرض کنید یک فایل متنی با نام example.txt داریم که اطلاعات زیر درون آن نوشته شده است :


Line number 1
Line number 2
Line number 3
Line number 4

فرض می کنیم که 2 خط اول فایل، همان توضیحات (header) باشد، بنابراین باید 2 خط اول فایل خوانده نشود. بنابراین کدهای زیر را می نویسیم :


clear all
close all
clc

fid=fopen('example.txt');
A=textscan(fid, '%s', 'delimiter', '\n', 'headerlines', 2)
Information_1=A{1}{1}
Information_2=A{1}{2}

ابتدا فایل example.txt را با دستور fopen باز کرده ایم، سپس کل اطلاعات آن، به جز بخش توضیحات، را با دستور textscan به صورت یک آرایه سلولی (cell array) در متلب ذخیره می کنیم. همان طور که مشاهده می کنید، درون پرانتز دستور textscan ، مقدار delimiter را برابر \n تعیین کرده ایم، delimiter همان جداکننده است که باعث می شود که بخش های مختلف آرایه، بر اساس علامتی که تعیین می کنیم، مشخص شود. علامت های \n برای رفتن به خط جدید به کار می رود، بنابراین وقتی علامت های \n را به عنوان جداکننده تعیین می کنیم، باعث می شود که هر خط از فایل متنی، در یک بخش از آرایه سلولی قرار داده شود. مهمترین بخش کدها، headerlines می باشد که آن را برابر 2 تعیین کرده ایم و متلب، بر اساس مقدار آن، متوجه می شود که 2 خط اول فایل، توضیحاتی است که نباید بخواند.

آرایه سلولی A ، شامل کل اطلاعات فایل، به جز 2 خط اول آن خواهد بود.

نتیجه :


A =

    {2x1 cell}


Information_1 =

Line number 3


Information_2 =

Line number 4

همان طور که مشاده می کنید، آرایه سلولی A دارای 2 سلول است که همان اطلاعات دو خط آخر فایل example.txt می باشد. اطلاعات آن دو سلول را در خروجی نمایش داده ایم.

نویسنده علیرضا گلمکانی
شماره کلید 179
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 1 1 0
پیمان عظیمی
۱۳۹۷/۱۰/۱۵
۱۸:۲۰

با سلام و ممنون از مطالب خوب شما.
من یک سوال دارم درباره حذف کردن سطرهای دلخواه از فایل متنی در متلب.
من یک سری فایل متنی دارم که هر کدوم ۱۸۰۰۰ خط دارن و باید خط‌های وسط اون رو حذف کنم. خطهایی که باید حذف بشن ۵ تا هستن که هر ۴۸ خط در میون تکرار میشن تا انتها. با کدهایی که در سایت بود نتونستم اینکارو انجام بدم. لطفا کمکم کنید

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)