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


رتبه موضوع:
  • 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ماتریس(در متلب)

ماتریس(در متلب)

#1
سلام
من میخوام یه ماتریس ایجاد کنم که توی دوتا حلقه باشه. و مقادیر درون حلقه اول  توزیع یکنواخت بین (1,20) و حلقه دوم (1,15) باشه. از روی ضرب اینها یه ماتریس جدید تولید شه. برای ضرب به مشکل بر می خورم. لطفا راهنمایی کنید
پاسخ

ماتریس(در متلب)

#2
سلام.
به عنوان یک مثال، کد زیر را می نویسیم :

کد پی‌اچ‌پی:
clear all
close all
clc
 
x
=rand(1,20)
y=rand(1,15)

x_length=length(x)
y_length=length(y)

z=zeros(x_length,y_length);
for 
nn=1:x_length
    
for mm=1:y_length
        z
(nn,mm)=x(nn)*y(mm);
    
end
end


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

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

  
Columns 1 through 14

    0.8147    0.9058    0.1270    0.9134    0.6324    0.0975    0.2785    0.5469    0.9575    0.9649    0.1576    0.9706    0.9572    0.4854

  Columns 15 through 20

    0.8003    0.1419    0.4218    0.9157    0.7922    0.9595


=

  
Columns 1 through 14

    0.6557    0.0357    0.8491    0.9340    0.6787    0.7577    0.7431    0.3922    0.6555    0.1712    0.7060    0.0318    0.2769    0.0462

  Column 15

    0.0971


x_length 
=

    
20


y_length 
=

    
15


=

  
Columns 1 through 14

    0.5342    0.0291    0.6918    0.7609    0.5530    0.6173    0.6054    0.3196    0.5340    0.1395    0.5752    0.0259    0.2256    0.0376
    0.5940    0.0323    0.7691    0.8460    0.6148    0.6864    0.6731    0.3553    0.5937    0.1551    0.6395    0.0288    0.2508    0.0418
    0.0833    0.0045    0.1078    0.1186    0.0862    0.0962    0.0944    0.0498    0.0832    0.0217    0.0897    0.0040    0.0352    0.0059
    0.5989    0.0326    0.7756    0.8531    0.6199    0.6921    0.6788    0.3583    0.5987    0.1564    0.6449    0.0291    0.2529    0.0422
    0.4147    0.0226    0.5370    0.5906    0.4292    0.4792    0.4699    0.2480    0.4145    0.1083    0.4465    0.0201    0.1751    0.0292
    0.0640    0.0035    0.0828    0.0911    0.0662    0.0739    0.0725    0.0383    0.0639    0.0167    0.0689    0.0031    0.0270    0.0045
    0.1826    0.0099    0.2365    0.2601    0.1890    0.2110    0.2070    0.1092    0.1825    0.0477    0.1966    0.0089    0.0771    0.0129
    0.3586    0.0195    0.4644    0.5108    0.3712    0.4144    0.4064    0.2145    0.3585    0.0936    0.3861    0.0174    0.1514    0.0253
    0.6279    0.0342    0.8130    0.8943    0.6499    0.7255    0.7116    0.3756    0.6276    0.1639    0.6760    0.0305    0.2652    0.0442
    0.6327    0.0345    0.8193    0.9012    0.6549    0.7311    0.7170    0.3785    0.6325    0.1652    0.6813    0.0307    0.2672    0.0446
    0.1034    0.0056    0.1338    0.1472    0.1070    0.1194    0.1171    0.0618    0.1033    0.0270    0.1113    0.0050    0.0436    0.0073
    0.6365    0.0347    0.8242    0.9065    0.6588    0.7355    0.7213    0.3807    0.6362    0.1662    0.6853    0.0309    0.2688    0.0448
    0.6277    0.0342    0.8128    0.8940    0.6497    0.7253    0.7113    0.3754    0.6274    0.1639    0.6758    0.0305    0.2651    0.0442
    0.3183    0.0173    0.4121    0.4533    0.3294    0.3678    0.3607    0.1904    0.3182    0.0831    0.3427    0.0155    0.1344    0.0224
    0.5248    0.0286    0.6795    0.7475    0.5432    0.6064    0.5947    0.3139    0.5246    0.1370    0.5650    0.0255    0.2216    0.0370
    0.0930    0.0051    0.1205    0.1325    0.0963    0.1075    0.1054    0.0557    0.0930    0.0243    0.1002    0.0045    0.0393    0.0066
    0.2766    0.0151    0.3581    0.3939    0.2863    0.3196    0.3134    0.1654    0.2765    0.0722    0.2978    0.0134    0.1168    0.0195
    0.6005    0.0327    0.7776    0.8553    0.6215    0.6939    0.6805    0.3592    0.6002    0.1568    0.6466    0.0292    0.2536    0.0423
    0.5195    0.0283    0.6727    0.7399    0.5377    0.6003    0.5887    0.3107    0.5193    0.1356    0.5593    0.0252    0.2194    0.0366
    0.6292    0.0343    0.8147    0.8962    0.6512    0.7270    0.7130    0.3763    0.6289    0.1643    0.6774    0.0305    0.2657    0.0443

  Column 15

    0.0791
    0.0880
    0.0123
    0.0887
    0.0614
    0.0095
    0.0271
    0.0531
    0.0930
    0.0937
    0.0153
    0.0943
    0.0930
    0.0471
    0.0777
    0.0138
    0.0410
    0.0889
    0.0769
    0.0932 

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

ماتریس(در متلب)

#3
سلام
اگه بخوام  همه ی سطرهای همین ماتریس رو یک در میان مرتب کنم، از چه دستوری استفاده میشه؟
پاسخ

ماتریس(در متلب)

#4
برای اینکه به عناصر سطرها به صورت یک در میان دسترسی داشته باشیم، باید در حلقه، کد مربوط به متغیر حلقه به صورت زیر تغییر داده شود :

کد پی‌اچ‌پی:
nn=1:2:x_length_change 

قبلا سطرها یکی یکی اضافه می شد، اما اکنون دوتا دوتا اضافه می شود. اما اگر دقت کنید، متغیری با نام x_length_change را در آن نوشته ایم. این متغیر، برابر شماره آخرین سطر نیست، چون ممکن است که تعداد سطرها زوج باشد. بنابراین باید ابتدا چک کنیم که تعداد سطرها فرد است یا زوج، بعد مقدار x_length_change را بر اساس آخرین سطر قابل انتخاب، تعیین کنیم. مثلا اگر 3 سطر داشته باشیم، برابر 3 خواهد شد، یا اگر 6 سطر داشته باشیم، برابر 5 خواهد شد (بر اساس زوج یا فرد بودن، این شماره تعیین می شود).
در مورد مرتب کردن، دستور sort را ببینید :

کلید شماره 183

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

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

ماتریس(در متلب)

#5
با سلام
سوالی که دارم اینه:
از یک ماتریس eig گرفتم ماتریس مقدار ویژه و بردار ویژه بدست اومد. حالا میخوام از ستون هایی از ماتریس بردار ویژه استفاده کنم که متناظر با ستون هایی از ماتریس مقدار ویژه هست که مقادیر اونا کوچیکتر از 30٪ بزرگترین مقدار ویژه باشه.
مثلا اگه ماتریس ویژه 32×32 باشه من یه ماتریس 6×32 باید بدست بیارم.
از چه دستوری میتونم استفاده کنم؟
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


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