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


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

ایجاد ماتریس (متلب - MATLAB)

#1
با سلام
دوستان من میخوام یک ماتریس با 9 سطر و 30 ستون ایجاد کنم که داده های هر سطر باید به صورت تصادفی در بازه های مشخصی ایجاد بشن. لطفا راهنمایی کنید. مرسی
پاسخ

ایجاد ماتریس (متلب - MATLAB)

#2
(۱۳۹۶/۰۸/۰۴, ۰۴:۰۲ ب.ظ)Matlab2017 نوشته: با سلام
دوستان من میخوام یک ماتریس با 9 سطر و 30 ستون ایجاد کنم که داده های هر سطر باید به صورت تصادفی در بازه های مشخصی ایجاد بشن. لطفا راهنمایی کنید. مرسی

با سلام
برای ایجاد ماتریس تصادفی می تونید از دستور rand استفاده کنید ولی برای ایجاد در یک بازه همانند کد زیر عمل کنید.

کد پی‌اچ‌پی:
a=x;
b=y;
A=a+(b-a)*rand(c,m

درون پرانتز rand تعداد ستون و ردیف را مشخص می کنید. x,y بازه مدنظر است. اعشاری عدد می دهد.
اگر عدد صحیح مدنظر شماست می تونید همانند دستور زیر عمل کنید

کد پی‌اچ‌پی:
a=x;
b=y;
A=round(a+(b-a)*rand(c,m)) 

موفق باشید
rezavalizadeh95@gmail.com
پاسخ
 سپاس شده توسط Matlab2017 ، admin

ایجاد ماتریس (متلب - MATLAB)

#3
(۱۳۹۶/۰۸/۰۴, ۰۸:۰۳ ب.ظ)m-r-v نوشته:
(۱۳۹۶/۰۸/۰۴, ۰۴:۰۲ ب.ظ)Matlab2017 نوشته: با سلام
دوستان من میخوام یک ماتریس با 9 سطر و 30 ستون ایجاد کنم که داده های هر سطر باید به صورت تصادفی در بازه های مشخصی ایجاد بشن. لطفا راهنمایی کنید. مرسی

با سلام
برای ایجاد ماتریس تصادفی می تونید از دستور rand استفاده کنید ولی برای ایجاد در یک بازه همانند کد زیر عمل کنید.

کد پی‌اچ‌پی:
a=x;
b=y;
A=a+(b-a)*rand(c,m

درون پرانتز rand تعداد ستون و ردیف را مشخص می کنید. x,y بازه مدنظر است. اعشاری عدد می دهد.
اگر عدد صحیح مدنظر شماست می تونید همانند دستور زیر عمل کنید

کد پی‌اچ‌پی:
a=x;
b=y;
A=round(a+(b-a)*rand(c,m)) 

موفق باشید

مرسی
اما این دستور یک ماتریسی ایجاد میکنه که کلیه سطرهاش تو بازه a و b هستند درحالی که هدف من اینه که ماتریس مثلا A هر ردیفش تو یه بازه تصادفی که میگم باشه مثلا سطر اول بین 0.2 تا 1.2 سطر دوم بین 2 تا 8 و به همین شکل
پاسخ

ایجاد ماتریس (متلب - MATLAB)

#4
(۱۳۹۶/۰۸/۰۴, ۰۸:۱۶ ب.ظ)Matlab2017 نوشته: مرسی
اما این دستور یک ماتریسی ایجاد میکنه که کلیه سطرهاش تو بازه a و b هستند درحالی که هدف من اینه که ماتریس مثلا A هر ردیفش تو یه بازه تصادفی که میگم باشه مثلا سطر اول بین 0.2 تا 1.2 سطر دوم بین 2 تا 8 و به همین شکل

سلام.
بنابراین باید همان شیوه کدنویسی که ذکر کردند را در دو حلقه for (کلید شماره 30) تو در تو به کار ببرید تا ماتریس A ساخته شود. در ابتدای برنامه، اعداد ماکزیمم و مینیمم هر ردیف را هم در دو بردار (مثلا با نام های A_min و A_max) ذخیره کنید.
توضیحات در مورد دستور rand را می توانید در کلید شماره 21 بخوانید.
کد متلب (MATLAB) :

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

zeros(9,30);
A_min = [10 20 30 40 50 60 70 80 90]
A_max = [20 30 40 50 60 70 80 90 100]

for 
kk=1:9
    for jj
=1:30
        a 
A_min(kk);
 
       b A_max(kk);
 
       random_number a+(b-a)*rand(1);
 
       A(kk,jj) = random_number;
 
   end
end 


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

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

 
   10    20    30    40    50    60    70    80    90


A_max 
=

 
   20    30    40    50    60    70    80    90   100


=

 
 Columns 1 through 17

   15.5343   13.6951   12.0642   19.8827   12.3162   16.1330   11.1937   17.5747   16.8573   13.6624   17.0041   11.7516   11.1295   17.4061   12.5185   12.0196   10.4789
   26.7579   25.2052   25.0410   23.7992   27.0200   22.4142   25.3617   27.0462   22.2208   21.6802   23.0840   26.8044   27.9883   24.9885   20.0278   29.3883   21.0107
   32.7732   32.0193   37.9783   30.9797   36.6067   31.6366   36.5983   35.5904   35.2593   30.1986   38.0065   38.3998   38.0032   37.4316   31.1846   30.8531   36.9161
   47.1763   49.5861   42.1506   44.8890   46.7763   43.8903   42.1113   44.5383   47.7743   48.5621   49.3604   43.4111   45.6758   49.0899   42.2407   46.9003   48.9612
   58.8965   50.3393   58.5029   50.0912   59.2995   54.0188   56.9245   51.0078   50.7877   57.1382   59.7054   55.3200   59.9130   58.5041   57.9880   50.1222   59.6185
   63.3614   68.8797   63.8067   61.1546   60.7093   61.4483   68.5585   60.0494   64.7381   65.1170   61.8236   60.3909   68.2747   63.6294   63.1373   66.8040   69.7373
   71.8511   73.1742   74.0764   79.0416   74.1537   75.0664   76.4631   72.4693   76.7242   74.9919   79.5905   75.3940   73.0245   73.5882   74.2158   75.7861   77.6765
   82.8326   80.1386   89.6668   80.9959   88.8649   88.1718   89.7124   89.8706   85.6134   89.4646   86.7315   88.0468   89.8587   83.2765   82.1497   85.3059   83.1776
   99.2258   99.8084   97.5521   97.7006   96.3066   93.9477   95.1490   99.4882   96.6882   95.3966   97.0410   91.3453   92.5697   94.8618   91.7691   99.8626   96.3103

  Columns 18 through 30

   13.8121   19.0674   13.9711   18.4618   13.8146   16.1677   16.5734   18.0259   11.7338   15.0833   10.2658   12.8387   10.7195
   27.5767   29.9443   21.7692   28.3634   28.5133   27.2781   29.2460   29.6526   22.2529   20.4871   22.3054   23.5049   20.8970
   36.1713   36.0072   38.6079   30.9193   31.5118   39.9038   39.5667   31.1522   34.8335   31.0245   39.7708   35.4432   34.0523
   49.2728   45.3001   41.9939   47.7712   49.3423   47.8894   45.8972   43.0686   43.5500   44.3488   40.4706   40.3142   48.3363
   52.5808   54.7062   55.2968   59.7166   50.5248   57.7532   53.0086   56.2588   53.9200   59.0592   55.1360   58.2642   59.6082
   60.1126   69.4142   68.6721   69.7073   61.6371   64.5164   66.0316   62.4716   68.2897   62.7956   60.6400   64.9185   64.5895
   73.2960   79.8381   70.8979   74.8123   72.0577   74.0695   71.1231   70.0430   71.9234   76.4267   70.1015   75.3701   78.8099
   88.1272   87.0165   85.6787   81.4600   86.9508   88.2346   89.8839   82.6032   87.1495   82.4536   83.2179   81.3573   80.2961
   93.9703   97.6627   97.1333   96.2592   98.7888   99.2737   98.9365   92.1875   93.3440   94.2702   93.6883   99.7823   97.9642 

اگر قصد دارید که اعداد دارای قسمت اعشاری نباشند، همان طور که تذکر دادند، می توانید از دستور round استفاده کنید (کلید شماره 59).

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

ایجاد ماتریس (متلب - MATLAB)

#5
با سلام و خسته نباشید
من میخوام یک ماتریسی تولید کنم که در هر سطش تنها یک عدد 1 وجود داشته باشه و مابقی درایه های آن سط صفر باشه.
میشه راهنماییم کنید
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


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