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


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تبدیل یک ماتریس به ماتریس های کوچکتر، در متلب

تبدیل یک ماتریس به ماتریس های کوچکتر، در متلب

#1
با سلام
ممنون از راهنمایی های خوبتون
میخواستم بدونم چه طوری میتونم یه ماتریس مثلا 6*5 رو تبدیل کنم به 5 تا ماتریس 6*1 ؟؟؟
یعنی میخوام هر سطر ماتریس رو به یک ماتریس جداگونه تبدیل کنم
با تشکر
پاسخ

تبدیل یک ماتریس به ماتریس های کوچکتر، در متلب

#2
سلام.
من براتون مثال می زنم، فقط قبل از خواندن کدهای آن، بهتر است کلید زیر را بخوانید تا با چگونگی تعریف متغیرها با استفاده از دستور eval آشنا شوید :

کلید شماره 154

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

کد پی‌اچ‌پی:
clear all
close all
clc

A
=[1  2  3  4  5  6;
   
7  8  9  10 11 12;
   
13 14 15 16 17 18;
   
19 20 21 22 23 24;
   
25 26 27 28 29 30]

A_size=size(A)
for 
nn=1:A_size(1)
    eval([
'x'num2str(nn) , ' = A(' num2str(nn) ,',1:end)']);
end 

نتیجه اجرای کد متلب بالا :

کد پی‌اچ‌پی:
=

     
1     2     3     4     5     6
     7     8     9    10    11    12
    13    14    15    16    17    18
    19    20    21    22    23    24
    25    26    27    28    29    30


A_size 
=

     
5     6


x1 
=

     
1     2     3     4     5     6


x2 
=

     
7     8     9    10    11    12


x3 
=

    
13    14    15    16    17    18


x4 
=

    
19    20    21    22    23    24


x5 
=

    
25    26    27    28    29    30 

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

تبدیل یک ماتریس به ماتریس های کوچکتر، در متلب

#3
با سلام
من یه ماتریس (8190،2) دارم میخام به 90 تا ماتریس (91،2) تبدیل کنم. البته نیاز دارم که همه ی 90 تا ماتریس هم ذخیره کنم و داشته باشم.

ممنون میشم اگه راهنمایی کنید.

با تشکر

 
پاسخ

تبدیل یک ماتریس به ماتریس های کوچکتر، در متلب

#4
سلام.
در این موارد، باید از حلقه for استفاده کنیم و در حلقه، تعیین کنیم که به عنصرهای مناسب در ماتریس اصلی اشاره شده و آنها را در یک ماتریس جدید قرار بدهیم.
برای 90 ماتریس، باید نام های متفاوتی داشته باشیم، ولی در حلقه for ، امکان تعریف نام های متفاوت نیست، اما خوشبختانه در کلید زیر برای این مشکل، راه حلی ارائه شده است :

کلید شماره 154

که در آن از دستور eval برای اجرای یک رشته (string) به صورت دستور، استفاده کرده ایم.
بنابراین مثلا می توانیم ماتریس های با نام A_1 و A_2 و ... و A_90 تعریف کنیم که در آنها، عنصرهای مناسب از ماتریس اصلی قرار گرفته باشد.

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

تبدیل یک ماتریس به ماتریس های کوچکتر، در متلب

#5
سلام
بازهم تشکر و البته یه سوال دیگه!
من یه ماتریس یک در 18 دارم که میخوام عضو 1 و 7 و13 خود تشکیل یک بردار جداگانه دهند.به همین ترتیب عضوهای 2 و8و 14وسپس عضوهای 3و9و15و به همین ترتیب تا نهایتا به عضوهای 6و12و18 برسیم که هر3 تاعضو با این ترتیب ها(با فاصله 6تایی)تشکیل یک بردار 3تایی جداگانه دهند.
ممنون میشم اگه راهنمایی کنید.
 

 
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


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