انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نحوه خواندن اطلاعات یک فایل text در متلب

نحوه خواندن اطلاعات یک فایل text در متلب

#1
با سلام خدمت دوستان
من یک فایل text دارم ولی نمی دانم چگونه و با چه دستوری داده ها را از text به matlab بفرستم
لطفا راهنمایی کنید
مثلا این داده ها را داشته باشم
1    2    3    4     5     6     7
8    9    10    11    12    13
فاصله بین هر دو عدد ثابت و مثلا 4 تا space است و می خواهم به صورت سطری داده ها را بخوانم.
لطفا راهنمایی بفرمایید.

 

 

 
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#2
سلام.
از دستور textscan استفاده کنید.
خود help متلب، مثال های خوبی در مورد آن دارد.
 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط m-civil1370

نحوه خواندن اطلاعات یک فایل text در متلب

#3
من در مورد خواندن داده از فایل متنی به این موارد برخوردم:

کد:
clc
fid = fopen('mysindata.txt', 'r');
a = fscanf(fid, '%f', [1 inf])
% It has one row.

کار فرمان fopen باز کردن فایل و آماده سازی آن برای باز خوانی است.گزینه ی r در انتهای فرمان به معنی reading است وبا کمک آن شما به متلب ذکر می کنید که فقط اجازه ی خواند فایل را دارد.
فرمان fscanf کارش خواندن داده ها و انتقال آنها به ماتریس مانند a است
در انتهای فرمان [1  inf] به متلب می گوید که یک ستون را تا انتها بخواند.


سوالم این است که چطور بگوییم مثلا از خط دو شروع به خواندن داده ها کند؟؟؟
مثلا در خط اول و دوم توضیحاتی راجب فایل دارم و داده ها از خط سوم شروع می شوند.
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#4
با سلام
دوستان اگه ممکنه راهنمایی بفرمایید
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#5
سلام.
با توجه به پرسش شما، مبحث زیر را نوشتم :

http://www.kelidestan.com/matlab/matlab-178.php

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

کد:
A=textscan(fid, '%s', 'delimiter', '\n', 'headerlines', 3)

مقدار headerlines را برابر 3 انتخاب کرده ایم که باعث می شود 3 خط اول فایل خوانده نشود و خواندن فایل، از خط چهارم شروع شود (آن مبحث را بخوانید و سپس از این نکته استفاده کنید، مقدمات در آن مبحث گفته شده است).
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط m-civil1370

نحوه خواندن اطلاعات یک فایل text در متلب

#6
این هم مبحثی که آن مورد را به طور اختصاصی، توضیح می دهد :

http://www.kelidestan.com/matlab/matlab-179.php
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط m-civil1370

نحوه خواندن اطلاعات یک فایل text در متلب

#7
بسیار عالی
یه سوال
در دستور زیر
fid=fopen('example.txt');
A=textscan(fid, '%s', 'delimiter', '\n');
Line_Number=3;
Line_Information=A{1}{Line_Number}
من می خواهم کلا از خط سوم به بعد ، کل داده ها را در یک ماتریس قرار دهم.دستور به چه صورت خواهد بود؟؟؟

 
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#8
من اینطور متوجه شدم که با این دستور ابتدا کل داده ها را در ماتریس A قرار می دهد.
حال باید این داده ها را از ماتریس A بخوانیم.
حال چطور کل داده ها را بخوانیم و یکجا همه را در یک ماتریس ذخیره کنیم؟؟؟
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#9
تا اونجایی که من می دونم، دستور cell2mat برای تبدیل آرایه سلولی (cell array) به ماتریس به کار می رود، ولی برای هر آرایه ای عمل نمیکنه. بستگی به ساختار فایلتون داره و یک سری موارد دیگه. باید یک روش مناسب پیدا کنید یا اینکه، پس از استفاده از این روش، به سلول های آرایه ارجاع بدهید.
در ضمن، لطفا در ارسال هاتون، از دکمه درج کد استفاده کنید.   
 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#10
با تشکر از شما
یک نمونه از فایل هایم را در لینک زیر قرار داده ام
لطفا راهنمایی کنید.
http://mcivil1370.persiangig.com/documen...t/download


فایل‌های پیوست

دانلود OAK_WHAF-1.txt

نام فایل OAK_WHAF-1.txt
نوع فایل .txt
دفعات دانلود 447
اندازه 20.16 KB
ارسال کننده فایل m-civil1370
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#11
با توجه به ساختار فایل متنی که ضمیمه کردید، کدهای زیر را نوشتم (دقت کنید که نام فایل را به example.txt تغییر داده ام) :

کد:
clear all
close all
clc
fid=fopen('example.txt');
A=textscan(fid, '%f', 'headerlines', 2)
B=cell2mat(A);
B_size=size(B)
C=zeros(8,250);
for nn=1:2000
    C(nn)=B(nn);
end
C=C'

نتیجه اجرای کد متلب بالا، ماتریس C است که حاوی همان اطلاعات فایل متنی خواهد بود.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط m-civil1370

نحوه خواندن اطلاعات یک فایل text در متلب

#12
بسیار عالی
خیلی ممنون
من باید این ماتریس را به صورت یک ماتریس ستونی در بیاورم. یعنی تمام سطرها را پشت سرهم قرار بدم
مثلا برای سطر اول که 8 درایه دارد در یک ماتریس ستونی 1*8 قرار بگیره بعد سطر بعدی هم زیر همین درایه ها قرار بگیره
دستور ترانهاده را دیده ام . برای کل سطر های ماتریس ، چطور این کار را انجام بدم؟؟؟
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#13
در کد قبلی، ببینید چطوری ماتریس C رو تعریف کردم. با کدهایی مشابه آن، می توانید دوباره عنصرها را در یک ماتریس جدید بچینید.
دستور reshape نیز می تواند برای این منظور به کار رود.
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط m-civil1370

نحوه خواندن اطلاعات یک فایل text در متلب

#14
خیلی ممنون از راهنماییتان
ماتریس را تغییر دادم.
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#15
یه سوال
میشه در مورد دستور reshape هم توضیح بدهید.شاید بعدها بدرد خورد.
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#16
خواهش می کنم.
قبلا در مورد reshape یک مبحث نوشته شده :

http://www.kelidestan.com/matlab/matlab-71.php
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط m-civil1370

نحوه خواندن اطلاعات یک فایل text در متلب

#17
(۱۳۹۲/۰۹/۰۸, ۱۲:۳۳ ق.ظ)admin نوشته: این هم مبحثی که آن مورد را به طور اختصاصی، توضیح می دهد :

http://www.kelidestan.com/matlab/matlab-179.php


یه سوال داشتم:
در ارتباط با این کدی که اینجا گذاشته شده، اگه بخواهیم عددی رو در جای مشخصی از فایل متنی بنویسه، آیا لازمه اول از دستور textscanf استفاده کنیم و بعد از دستور fprintf ؟
مثلا اگر این فایل متنی باشه:

gauge1      1/4/2010       00:10       3.56
gauge1      1/4/2010       00:10       4.67
gauge1      1/4/2010       00:10       2.06


و بخواهیم فقط اعداد ستون چهارم تغییر کنند (به جاشون اعداد جدید بنویسیم) چه کار باید بکنیم؟

یه سوال دیگه هم اینکه s% که گذاشتید، برای چیه؟ چون بعضی وقتها به جای s از g یا f  استفاده میشه؟ فرقشون چیه؟

با تشکر
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#18
(۱۳۹۵/۱۰/۱۳, ۰۸:۲۷ ب.ظ)G B نوشته:
(۱۳۹۲/۰۹/۰۸, ۱۲:۳۳ ق.ظ)admin نوشته: این هم مبحثی که آن مورد را به طور اختصاصی، توضیح می دهد :

http://www.kelidestan.com/matlab/matlab-179.php
جواب سوالی که پرسیدم، تقریباً پیدا کردم، الان سوالی که وجود داره اینه که اگه فایل متنی اینطوری باشه:

gauge1      1/1/2010       00:10       3.56

gauge1      1/2/2010       00:10       4.67
gauge1      1/3/2010       00:10       2.06
                                   .
                                   .
                                   .
gauge1      1/31/2010       00:10       3.56

gauge1      2/1/2010       00:10       4.67
gauge1      2/2/2010       00:10       2.06
                                   .

                                   .
                                   .
gauge1      12/31/2010       00:10       3.56

gauge1      1/1/2011       00:10       4.67
gauge1      1/2/2010       00:10       2.06

چطورمیشه اعداد ستون چهارم رو با اعداد جدیدی جایگزین کرد، طوریکه باقی ستون ها بدون تغییر باقی بمونند؟

با تشکر







یه سوال داشتم:
در ارتباط با این کدی که اینجا گذاشته شده، اگه بخواهیم عددی رو در جای مشخصی از فایل متنی بنویسه، آیا لازمه اول از دستور textscanf استفاده کنیم و بعد از دستور fprintf ؟
مثلا اگر این فایل متنی باشه:

gauge1      1/4/2010       00:10       3.56
gauge1      1/4/2010       00:10       4.67
gauge1      1/4/2010       00:10       2.06


و بخواهیم فقط اعداد ستون چهارم تغییر کنند (به جاشون اعداد جدید بنویسیم) چه کار باید بکنیم؟

یه سوال دیگه هم اینکه s% که گذاشتید، برای چیه؟ چون بعضی وقتها به جای s از g یا f  استفاده میشه؟ فرقشون چیه؟

با تشکر
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#19
سلام من یک دیتای EEG (سیگنال مغزی) دارم که فرمتش txt  هست.
به شکل زیر( یک قسمت کوچکی از سیگال):
829 7AF 786 7AC 74C 76F 7AD 7A4 78F 7C3 7A0 7A7 7CF 7A1 786 869 78B 789 7A2 787 78C 764 782 783 120 721 7CC 7CB 7CB 7CE 7C8 8A5 7CE 88B 7E0 0 7E0 5A8 0 7CD 7CF 7E2 7CF 7E0 0 34E 7E0 7CD 7CE FC9 7CE 7E2 7E0 7CE 7CC 0 0 7CF 7CC 84A 7CF 7C8 7E1 7E1
808 76A 741 74B 704 725 709 74B 729 749 748 741 769 764 749 7EF 742 72D 745 72C 740 701 747 72E 4AB 6CC 7EB 7E9 7E9 7EC 7E6 8C7 7EC 88A 7ED 0 7EE FE5 4 7EE 7ED 7E2 7EE 7ED 4 FE5 7EE 7EC 7ED 9 7ED 7E2 7E2 7EB 7EB FE5 4 7E0 7EA 849 7EB 7E5 7EE 7ED
80C 745 70E 705 6C2 70E 6E3 72A 70D 72A 72E 72B 745 745 746 7E4 706 704 740 727 727 6CF 744 706 7A9 6E6 7E6 7E4 7E3 7E7 7E3 8C3 7E7 86E 7E7 AA4 7E8 FE0 205 7E9 7E8 7EB 7EA 7E6 4 FE0 7E8 7E7 7E8 EE6 7E8 7EB 7E9 7E7 7E5 FEF D 7EA 7E5 861 7E4 7E1 7E7 7E7
82D 769 721 744 70C 744 706 743 74D 768 76A 764 767 762 76A 80D 722 723 749 743 74F 6E6 743 725 745 6E3 7EB 7EB 7EA 7ED 7EB 8C2 7EC 862 7ED 9AC 7EF FE7 84 7EE 7ED 801 7EF 7EC 2C FE8 7ED 7ED 7ED FE1 7ED 800 7EC 7EC 7EA FE8 0 7EF 7EB 865 7EA 7EA 7EE 7ED

دیتا هم شامل عدد و هم کاراکتر هست
با هر کد دستوری که استفاده کردم نتونستم از این دیتا استفاده کنم.
ممنون میشم اگر کسی بلده راهنمایی کنه
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#20
سلام
با دستور textscan میتونید این کار رو انجام بدین. مثالهای تو نت و هلپ متلب با این دستور رو چک کنید و مطابق با خواستتون ازش استفاده کنید
پاسخ

نحوه خواندن اطلاعات یک فایل text در متلب

#21
از دستور زیر هم میتونید استفاده کنید:
importdata('ab.txt')
ab نام فایل تکس هست
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان