اطلاعیه

Collapse
No announcement yet.

وارد کردن فایل txt به متلب

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    وارد کردن فایل txt به متلب

    با سلام به همه دوستان
    :biggrin:
    عزیزان من قصد دارم یک فایل text رو که حاوی اعداد هگز از 0 تا 255 (FF) است به متلب وارد کنم اما تا اونجایی که من می دونم فایل txt حاوی اسکی کد رو می شه به راحتی به متلب وارد کرد جالبه وقتی من با دستور loadآ‌ فایل داده رو وارد می کنم با این خطا مواجه می شم:

    ??? Error using ==> load
    Unknown text on line number 1 of ASCII file C:\Program Files\MATLAB\R2009a\data.txt
    "C8".

    که فکر می کنم به خاطر اینه که اسکی کدها از 0 تا 127 هستند ولی فایل من اعداد بیشتر هم داره.
    اگر اعداد در مبنای دسیمال باشند محدودیتی در مقدار اعداد وجود نداره و داده ها به راحتی با دستور loadآ‌ به متلب وارد می شوند.
    چاره چیست ؟کسی می تونه تو این زمینه منو راهنمائی کنه؟
    با سپاس
    همیشه بزرگوار تر از آن باشید که برنجید
    و نجیب تر از آن باشید که برنجانید!

    #2
    پاسخ : وارد کردن فایل txt به متلب

    سلام
    اگر درست متوجه شده باشم فایل شما دارای کاراکترهای A و ... هست.
    دستور load فقط میتونه فایلهای اسکی(حاوی اعداد و نه حروف رو) و فایلهای mat رو بخونه
    برای خوندن فایل hex من پیشنهاد میکنم اول با دستور textread فایل رو بخونین. خروجی این دستور، رشته هست نه عدد و بعد با دستور hex2dec رشته های خوانده شده را به عدد دسیمال تبدیل کنید
    کد:
    [col1 col2] = textread('C:\Documents and Settings\Administrator\Desktop\testfile.txt','%s%s');
    for i = 1:2
      data(:,1) = hex2dec(col1);
      data(:,2) = hex2dec(col2);
    end
    ماتریس data حاوی اعداد دسیمال فایل است
    البته باید تعداد ستونها معلوم باشه، کد بالا برای دو ستون هست.

    دیدگاه


      #3
      پاسخ : وارد کردن فایل txt به متلب

      آقای BlueApple از این که به سوالم جواب دادید ممنونم :biggrin:
      من یه مشکل دیگه هم دارم اگه کسی می تونه کمک کنه لطفا .... :biggrin:
      من یه بایت داده دارم که می خوام وضعیت تک تک بیت های اون رو به صورت مجزا، بررسی کنم.فرض کنید این بایت وضعیت 8 ورودی دیجیتال است.
      خودم این کد رو نوشتم.
      bitshift(byte,n)&1
      این کد بایت byteآ‌رو به تعداد n شیفت میده که برای شیفت به راست باید این عدد منفی باشه.بعد از شیفت وضعیت بیت lsb می تونه نشون دهنده وضعیت بیت دلخواه باشه.
      اما موضوع اینه که اند کردن نتیجه شیفت با عدد یک در اینجا بیتی نیست!! oo:
      منظورم اینه که فرض کنید بعد از شیفت عدد 4 نتیجه بشه که بیت lsbآ‌ آن که برای ما مهم است مقدار 0 را دارد ولی حاصل اند با 1 ،یک می شود چون اند بیتی نیست!! :angry:
      امیدوارم منظورمو رسونده باشم!! :sad:
      اگه ممکنه راهنمائی کنید. :redface:
      همیشه بزرگوار تر از آن باشید که برنجید
      و نجیب تر از آن باشید که برنجانید!

      دیدگاه


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

        سلام
        من پیشنهاد میکنم از دستور dec2binvec استفاده کنین.
        این دستور یک عدد دسیمال از شما میگیره و خروجیش یک ماتریسه که حاوی بیتهای عدده.
        باید دقت داشته باشین که خروجی از lsb شروع میشه.
        کد:
        >> out = dec2binvec(12,8)
        out =
          0  0  1  1  0  0  0  0
        حالا بیت i ام از سمت چپ با out(i) قابل دستیابی هست

        دیدگاه


          #5
          پاسخ : وارد کردن فایل txt به متلب

          جناب blueapple از لطف شما بی نهایت سپاس گزارم :biggrin:
          این دستوری که گفتید فرشته نجات بود! :applause: :wow:
          میشه بگید برای پیدا کردن دستورات بیتی از Help متلب چی باید سرچ کنم؟ :biggrin:
          گه مرجع کاملی برای متلب سراغ دارید لطف کنید معرفی کنید.
          باز هم ممنونم
          :wow:
          همیشه بزرگوار تر از آن باشید که برنجید
          و نجیب تر از آن باشید که برنجانید!

          دیدگاه


            #6
            پاسخ : وارد کردن فایل txt به متلب

            سلام، خواهش میکنم
            من عبارت decimal to binary رو جستجو کردم.
            یک دستور دیگه هم هست که شاید کار کردن باهاش ساده تر باشه و اون bitget هست:
            کد:
            >> bitget(5,1)
            ans =
               1
            >> bitget(5,2)
            ans =
               0
            >> bitget(5,3)
            ans =
               1
            >> bitget(5,4)
            ans =
               0
            نوشته اصلی توسط jaafary1
            میشه بگید برای پیدا کردن دستورات بیتی از Help متلب چی باید سرچ کنم؟
            در command window عبارت زیر رو تایپ کنید:
            help bitget
            و بعد به قسمت see also برین، خود matlab سایر دستورات وابسته رو معرفی میکنه
            یا اینکه مسیر زیر رو از help پیدا کنید:
            matlab---> Function Reference ---> Programming and data types ---> Bitwise functions
            نوشته اصلی توسط jaafary1
            مرجع کاملی برای متلب سراغ دارید لطف کنید معرفی کنید.
            من از help استفاده میکنم.
            خوشحال شدم تونستم کمک کنم

            دیدگاه


              #7
              پاسخ : وارد کردن فایل txt به متلب

              salam khaste nabashid
              man ye soal dashtam
              mikhastam dat yek matrisi ke be onvane mosal arghamesh az -n1 ta -n2 hast ro tabdil be matris ba argham beine 0 ta n2 konam yani maghadire manfi tabdil be sefr beshan
              dalbate ba estefade az narm afzare matlab
              ba tashakor

              دیدگاه


                #8
                پاسخ : وارد کردن فایل txt به متلب

                سلام دوست عزیز
                انشاالله که دفعه بعد فارسی مینویسی! :biggrin:
                و اما در مورد سوالت چیزی که به ذهن من می رسه اینه که از یه حلقه for استفاده کنی و یکی یکی عناصر آرایه رو چک کنی و با یه دستور if اگر مقدار هر عنصر منفی بود 0 رو جایگزین کنی در غیر اینصورت عدد تغییری نکند! :biggrin:
                شرمنده برنامه متلب رو در حال حاضر رو سیستمم ندارم که طرز نوشتن دستورات رو بهت بگم :mrgreen:
                ولی با سرچ کردن می تونی پیداشون کنی :mrgreen: و انشاالله چون برنامه نویسی بلدی می تونی این الگوریتمو پیاده کنی نه؟ :biggrin:
                موفق و سر بلند باشی
                همیشه بزرگوار تر از آن باشید که برنجید
                و نجیب تر از آن باشید که برنجانید!

                دیدگاه


                  #9
                  پاسخ : وارد کردن فایل txt به متلب

                  به این سوال در تاپیک زیر جواب داده شده!
                  http://www.eca.ir/forum2/index.php?topic=52476.0
                  It's nice to be important but it's important to be nice!

                  از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                  دیدگاه


                    #10
                    پاسخ : وارد کردن فایل txt به متلب

                    سلام میشه لطفا بهم کمک کنیم این که من دتیاست دیابت رودانلود کردم 1000رکورد داره بهم گفتند برامرحله اول پاکسازی دیتاست روبازکنم وحروف به اعدادصفرویک تبدیل کنم میخاستم بدونم فرقی نداره هرحرف روچی بزارم ممنون

                    دیدگاه

                    لطفا صبر کنید...
                    X