کلیدستان

نسخه‌ی کامل: تکرار آرایه های ماتریس در متلب
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
میخواستم بدونم برای تکرار ماتریس در متلب به جز کد repmat راه حل دیگه ای هست یا نه؟
سلام.
منظورتون اینه که همون عملکرد دستور repmat را با کدهای معمولی بنویسیم ؟
یعنی مثلا دو بار در جهت ردیف ها (عمودی) و سه بار در جهت ستون ها (افقی) تکرار بشه و یک ماتریس جدید بسازیم ؟
 
(۱۳۹۳/۰۸/۲۱, ۰۹:۰۸ ب.ظ)'admin' نوشته: [ -> ]سلام.
منظورتون اینه که همون عملکرد دستور repmat را با کدهای معمولی بنویسیم ؟
یعنی مثلا دو بار در جهت ردیف ها (عمودی) و سه بار در جهت ستون ها (افقی) تکرار بشه و یک ماتریس جدید بسازیم ؟
 

بله دقیقا مثلا با دستورهای حلقه
کدهای متلب زیر را می نویسیم :

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

A
=[1 23 4]
vertical_number 2;
horizontal_number 3;
B=repmat(A,2,3) --> like this

B
=A;
for 
nn=1:vertical_number-1
    B
=[B;A];
end
B_just_vertical 
B;
for 
nn=1:horizontal_number-1
    B
=[B,B_just_vertical];
end


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

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

     
1     2
     3     4


=

     
1     2     1     2     1     2
     3     4     3     4     3     4
     1     2     1     2     1     2
     3     4     3     4     3     4 

مشاهده می کنید که دقیقا مشابه دستور repmat عمل کرده است.

خیلی متشکرم
این کد هم میتونه مورد استفاده باشه

کد پی‌اچ‌پی:
A=[1 2;3 4]
n=1;
F=zeros(20,2)
 for 
i=1:1:10;
for 
j=1:1:2;
F(n,:)=A(j,:)
n=n+1;
end
end 

که فقط در تکرار سطرها خوبه این کد در گرانی سنجی مورد استفاده هست.