Skip Navigation Links
صفحه اصلی
ارتباط با ما Expand ارتباط با ما
همه مطالب
تصاویر Expand تصاویر
فرصت های شغلی
سوالات متداول
جستجو
     
 
تعریف تعداد زیادی متغیر جدید، درون یک حلقه for ، در متلب
گاهی نیاز داریم که تعداد زیادی متغیر را تعریف کنیم، بنابراین راه مناسب این است که از یک حلقه for استفاده کنیم، اما این سوال پیش می آید که چگونه در حلقه for ، نام های متفاوتی برای این تعداد زیاد از متغیرها، تعریف نماییم.

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

 

مثال :

یک برنامه متلب می نویسیم که متغیرهای با نام x1 و x2 و ... تا x9 را تعریف کرده و مقادیر آنها را برابر 1 و 2 و ... تا 9 قرار دهد :

 

clear all
close all
clc

for k = 1:9
     eval([x, num2str(k) ,  =  , num2str(k) ,;]);
end
whos

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

دستور num2str ، برای تبدیل اعداد به رشته (string) به کار رفته است.

دستور whos ، برای نمایش متغیرهای تعریف شده در متلب می باشد تا چک کنیم که آیا متغیرهای مورد نظرمان، تعریف شده اند یا خیر.

نتیجه :

 

 Name      Size            Bytes  Class     Attributes

  k         1x1                 8  double              
  x1        1x1                 8  double              
  x2        1x1                 8  double              
  x3        1x1                 8  double              
  x4        1x1                 8  double              
  x5        1x1                 8  double              
  x6        1x1                 8  double              
  x7        1x1                 8  double              
  x8        1x1                 8  double              
  x9        1x1                 8  double

مشاهده می کنید که متغیرهای x1 تا x9 درون متلب، تعریف شده اند.



1394/04/21 1:56:43 PM

نوشته شده توسط مجتبی شکوه

  نظرات شما  
   
نام:  
ن خانوادگی:  
تلفن:  
متن:  
   
   

    نظرات شما  
   
1394/09/23 9:03:25 PM
محمد احمدی نوشته:
for i=1:2
if i==1
;[ A=[1 2;0 4

else if i==2
;[ A=[5 1;7 3

end
end
end


A_new= 4.*A1+5.*A2

چجور میشه متغیرهای A1,A2 رو که همون مقادیر A برای حالت های i=1 و i=2 هستند رو تعریف کنیم؟

................................................................................

A1=[1 2;0 4];


A2=[5 1;7 3];


A_new= 4.*A1+5.*A2;

disp(A_new);