آموزش متلب

خواندن اطلاعات یک فایل متنی از یک خط مشخص به بعد ، در متلب

خواندن اطلاعات یک فایل متنی، از یک خط مشخص به بعد، در متلب

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

مثال

فرض کنید یک فایل متنی با نام 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 =

    {2×1 cell}

Information_1 =

Line number 3

Information_2 =

Line number 4

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *