loading...
sim power
مهندس احمدی بازدید : 283 یکشنبه 09 آبان 1395 نظرات (1)

   

ترکیب رشته های خانه آرایه

 
 

ترکیب رشته های خانه آرایه

از بحث قبلی ما ، این واضح است که ترکیب رشته ها با طول های مختلف  می تواند دردسازتر از تمام رشته های آرایه با طول یکسان باشد. ما  از فضاهای خالی با طول برابر در انتهای رشته ها استفاده می کنیم.

با این حال، روش موثرتر برای ترکیب رشته ها آرایه تبدیل  آرایه نتیجه به خانه آرایه است.

خانه آرایه متلب  می تواند اندازه هاو انواع داده  متفاوتی  در آرایه را نگهداری کند .خانه آرایه ها  راه انعطاف پذیرتری برای ذخیره سازی  رشته ها با طول  مختلف فراهم کرده است.

تابع cellstr آرایه کاراکتری را  به خانه آرایه از رشته ها تبدیل می کند.

مثال

name =’zara ali                   ‘;

position =’sr. surgeon            ‘;

worksat =’r n tagore cardiology research center’;

profile =char(name, position, worksat);

profile = cellstr(profile);

disp(profile)

 

زمانی که شما فایل را اجرا می کند، نتیجه زیر نمایش داده می شود:

477

توابع رشته ای در متلب

متلب امکان ایجاد، ترکیب، مقایسه و دستکاری، تجزیه  توابع مختلفی را  فراهم کرده است.

جدول زیر توصیف کوتاهی از توابع رشته ای را در متلب فراهم آورده است:

هدف تابع
توابعی برای ذخیره  متن در آرایه های کاراکتری، ترکیب آرایه های کارکتری و غیره.
ایجاد رشته ای از کاراکترهای خالی blanks
ایجاد خانه آرایه ای رشته ای از آرایه کارکاکتری cellstr
تبدیل به آرایه کاراکتری(رشته) char
تعیین می کند که ورودی خانه آرایه رشته ای است iscellstr
تعیین عنصر در آرایه کاراکتری ischar
فرمت داده برای رشته sprint
پیوند افقی رشته ها stract
اتصال رشته ها در خانه آرایه برای رشته های مجرد strjoin
توابعی برای شناسایی بخش های رشته ها، پیدا کردن و جایگزینی زیر رشته
تعیین می کند که آرایه کاراکتری است. ischar
عناصر آرایه  که حروف الفبا هستند isletter
عناصر آرایه که فضا کاراکترها هستند isspace
تعین می کند که مجموعه مشخص شده رشته است. isstrprop
قالب بندی داده رشته ای را می خواند sscanf
رشته ای را در رشته دیگر پیدا می کند strfind
رشته ای را پیدا و در زیر رشته دیگر جایگزین می کند strrep
رشته دوبخشی در جای مشخص strsplit
انتخاب بخش هایی از رشته strtok
بررسی اعتبار رشته متنی validatestring
نماد متغیرها در عبارت را تعیین می کند. symvar

ادامه مطلب....

مهندس احمدی بازدید : 269 یکشنبه 09 آبان 1395 نظرات (0)

  

داده خروجی

 
 

داده خروجی

داده خروجی در متلب به معنی نوشتن در یک فایل است.متلب به شما اجازه استفاده از داده شما در برنامه کاربردی دیگر  که در فایل های اسکی خوانده شده است را می دهد.. برای این کار، متلب چندین گزینه داده خروجی را فراهم کرده است.

شما می توانید انواع فایل های زیر را ایجاد نمایید:

  • مستطیال، فایل داده اسکی را از آرایه مشخص میکند.
  • فایل روزانه(ورود به سیستم) از ضربه کلید و  نتایج داده خروجی.
  • فایل اسکی  اختصاصی با استفاده از توابع سطح پایین مانند  fprintf.
  • فایل – mex برای دسترسی شما به روال فرترن یا c/c++که به یک فرمت فایل متنی خاص نوشته می شود.

جدا از این، شما همچنین می توانید داده را به صفحه گسترده صادر کنید.

دو راه برای خروج آرایه عددی به عنوان فایل داده ascii تعیین شده وجود دارد:

  • با استفاده از تابع save و تعیین توصیف کننده اسکی
  • با استفاده از تابع dlmwrite

نحوه اجرا در متلب مورد استفاده برای تابع save این گونه است:

save my_data. out num_array -ascii


که در اینجا mydata.outفابل داده اسکی تعیین شده را ایجاد می کند، num_array یک آرایه عددی و تعیین کننده است.

نحوه اجرا در متلب برای استفاده از تابع dlmwrite این گونه است:

dlmw1cite(‘myidat:a . out: ‘ , num_array, ‘dlmicha1c‘)

 

که، my_data.out برای ایجاد فایل اسکی تعیین شده است، num_array آرایه عددی است و dlm_char کاراکتر تعیین شده است.

مثال

مثال زیر این مفهوم را تشریح می کند.یک فایل اسکریپت ایجاد کنید و کد زیر را تایپ نمایید:

num_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 o];

save array_data1.out num_array -ascii;

type array_data1.0ut

dlmwrite(‘array_data2.out‘, num_array, ‘ ‘);

ادامه مطلب...

مهندس احمدی بازدید : 294 یکشنبه 09 آبان 1395 نظرات (0)

  

توابع در متلب

 
 

توابع در متلب

توابع مجموعه ای از دستورات است که یک وظیفه را اجرا می کند.در متلب، توابع در فایل های متفاوت مشخص شده اند. نام فایل و تابع باید یکسان باشد.

توابع بر روی متغیر ها در فضای کاری خودشان عمل می کنند، که فضای کاری محلی نامیده می شود،دسترسی به فضای کاری جداگانه در خط فرمان  متلب  فضای کاری پایه نامیده می شود.

توابع می توانند بیش از یک آرگومان ورودی را بپذیرند و ممکن است بیش از یک آرگومان خروج را برگردانند.

نحوه اجرا در متلبی از عبارت توابع  این گونه است:

482

مثال

تابع زیر mymax نامیده می شود  که باید در یک فایل به اسم  mymax.m نوشته شود. ممکن است پنج عدد آرگومان را به عنوان ورودی بگیرد و بزرگترین اعداد را برگرداند.

یک فایل ایجاد نمایید، اسم آن را mymax بگذارید و کد زیر را در آن تایپ نمایید:

function max = mymax(nl, n2, n3, n4, n5)

%thisfunction calculates the maximum of the

% five numbers given as input

max = nl;

if(n2 > max)

 max = n2;

end

if(n3 > max)

 max = n3;

end

if(n4 > max)

 max = n4;

end

if(n5 > max)

 max = n5;

end

 

اولین خط از تابع  با کلمه کلیدی function شروع می شود.این نام تابع و آرگومتن ها را می دهد.در مثال ما، تابع  mymax پنج آرگومان ورودی و یک آرگومان خروجی دارد.

خطوط فرمان  که بعد از عبارت  function می آیند متن کمکی را فراهم می کنند.زمانی که شما تایپ می کنید این خطوط چاپ می شوند:

help max

متلب دستورات بالا را اجرا خواهد کرد و نتیجه زیر را برمیگرداند:

483

شما می توانید تابع را به این صورت فراخوانی کنید:

lmymax(34,78,89,23,l)


توابع بی نام ( نام مستعار)

متلب دستورات بالا را اجرا خواهد کرد و نتیجه زیر را برمیگرداند:

484

توابع بی نام مانند توابع درون خطی در زبان های برنامه نویسی مرسوم هستند، که درون عبارت متلب مجرد تعریف  شده اند. شامل دستورات  و تعدادی ازآرگومان های  ورودی و خروجی  متلب است. 

ادامه مطلب...

مهندس احمدی بازدید : 236 یکشنبه 09 آبان 1395 نظرات (0)

  

قالب های رشته ای

 
 

قالب های رشته ای

یک فایل اسکریپت ایجاد نمایید و کد زیر را در آن تایپ کنید:

a = pi*1000*ones(1,5);

sprintf(‘ %f \n %.2f \n %+.2f \n %l2.2f \n %ol2.2f \n‘, a)


اتصال رشته ها
زمانی که شما فایل را اجرا می کنید، نتیجه زیر نشان داده می شود:

478

 

یک فایل اسکریپت ایجاد نمایید و کد زیر را در آن تایپ کنید:

%cell array of strings

str_array ={‘red‘,‘blue‘,‘green‘,‘yellow‘,‘orange‘};

 

%join strings in cell array into single string

str1 = strjoin(“-“, striarray)

str2 = strjoin(“,”, striarray)


پیدا کردن و جایگزینی رشته ها
زمانی که شما فایل را اجرا می کنید، نتیجه زیر نشان داده می شود:

479

یک فایل اسکریپت ایجاد نمایید و کد زیر را در آن تایپ کنید:

students ={‘zara ali‘,‘neha bhatnagar‘,…

‘monica malik‘,‘madhu gautam‘,…

‘madhu sharma’,’bhawna sharma’,…

‘nuha ali’,’reva dutta’,…

‘sunaina ali’,’sofia kabir’};

 

%the strrep function searches and replaces sub-string.

new_student = strrep(students(8),’reva’,’poulomi’)

%display first names

first_names = strtok(students)

480

ادامه مطلب.....

مهندس احمدی بازدید : 438 یکشنبه 09 آبان 1395 نظرات (0)

   

توابع فرعی و اصلی

 
 

توابع فرعی و اصلی

هر تابعی نسبت به تابع مستعار باید درون یک فایل تعریف شود.هر تابع فایل شامل تابع اصلی موردنیاز است که اول دیدار می شودو هر تعداد  تابع – فرعی اختیاری  بعد از تابع اصلی می آید و استفاده می شود.

توابع اصلی می تواند خارج از فایل تعریف شده آن ها فراخوانی شود،در هریک از خط فرمان یا توابع دیگر، اما توابع فرعی نمی توانند با خط فرمان یا دیگر توابع ،خارج از فایل تابع فراخوانی شوند.

توابع فرعی تنها با توابع اصلی قابل مشاهده اند و دیگر توابع فرعی مطابق با فایل توابع آن ها تعریف می شوند.

مثال

اجازه دهید تابعی با نام quadratic بنویسیم  که ریشه معادل quadratic  را محاسبه می کند.این تابع سه ورودی ، co – efficient  quadratic،co- efficient خطی و تابع فرعی disc را میگیرد، که جداگانه محاسبه می شوند.

یک فایل تابع quadratic.m ایجاد نمایید و کد زیر را در آن تایپ کنید:

function[xl,x2]= quadratic(a,b,c)

%thisfunction returns the roots of

% a quadratic equation.

%lt takes 3 input arguments

% which are the co-efficients of x2, x and the

%constant term

%lt returns the roots

d = disc(a,b,c);

xl =(-b + d)/(2*a);

x2 = )-b – dl / (2*a);

end%end of quadratic

function dis = disc(a,b,c)

%function calculates the discriminant

dis = sqrt(b^2-4*a*c);

end%end of sub-function

شما می توانید تابع بالا را از خط فرمان فراخوانی کنید:

quadratic(2,4,-4)

متلب دستورات بالا را اجرا خواهد کرد و نتایج زیر را برمیگرداند:

492

توابع تو در تو

شما می توانید تابعی درون بدنه تابع دیگر تعریف کنید.آن ها توابع تو در تو نامیده می شوند.تابع تو در تو a شامل هر یا تمامی اجزای تابع ذدیگری است.

توابع تو در تو در  حوزه ای از توابع دیگر تعریف شده اند و آن ها دسترسی به  فضای کاری توابع در برگرفته را  به اشتراک می گذارند.

تابع تو در تو با نحوه اجرا در متلبزیر در ادامه آمده است:

ادامه مطلب....

مهندس احمدی بازدید : 224 یکشنبه 09 آبان 1395 نظرات (0)

   

طرح

 
 

طرح

برای نقشه گراف با استفاده از تابع، شما نیاز دارید مراحل زیر را انجام دهید:

1.تعریف x،  با مشخص کردن مقادیر برای x، برای هرکرام از طرح ها.

2.تعریف تابع،(y=f(x

3.فراخوانی دستور plot،با عنوان(plot(x,y

مثال زیر اثبات این مفهوم است. اجازه دهید تابع ساده x=y را برای محدوده ای از مقادیر برای x از 0 تا 100، با افزایش 5 تایی رسم کنیم.

یک فایل اسکریپت ایجاد کنید و کد زیر را تایپ نمایید:

x =[0:5:l00];

y = x:

plot (x, y)

زمانی که شما فایل را اجرا می کنید، متلب طرح زیر را نمایش می دهد:

508

اجازه دهید یک مثال بیشتر برای رسم تابع  y=x2  بزنیم.در این مثال ما می خواهیم دو گراف با توابع یکسان، اما در دو زمان، مقادیر افزایشی را کاهش خواهیم داد.لطفاً توجه داشته باشید همانطور که مقادیر افزایشی را کاهش می دهیم نمودار نرم وصافتر می شود.

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ کنید:

x = [12345678910];

x =[-100:20:100];

y = x.^2;

plot (x , y)

زمانی که شما فایل را ایجاد می کنید، متلب طرح زیر را نشان می دهد:

509

کمی کد فایل را تغییر دهید، مقادیر افزایشی را به 5 کاهش دهید:

x =[-100:5:100];

y = x.^2;

ادامه مطلب....

مهندس احمدی بازدید : 265 یکشنبه 09 آبان 1395 نظرات (0)

  

توابع خصوصی

 
 

توابع خصوصی

تابع خصوصی یک تابع اصلی است  که تنها به یک گروه از توابع دیگر محدود شده است اگر شما نمی خواهید تابع(ها)  نمایش داده شود، شما می توانید آن ها را مانند تابع خصوصی ایجاد کنید.

تابع خصوصی  در subfolders با اسم خصوصی قرار داده می شود.

مثال

اجازه دهید دوباره تابع quadratic را بنویسیم. در این  صورت، تابع  disc به صورت جداگانه محاسبه می شود، که یک تابع خصوصی خواهد بود.

یک زیر پوشه با اسم خصوصی در فهرست کارتان ایجاد نمایید. تابع زیر تابع فایل disc.m را در آن ذخیره می کند:

function dis = disc(a,b,c)

%function calculates the discriminant

dis = sqrt(b^2-4*a*c);

end%end of sub-function

 

یک تابع quadratic3.m در فهرست کاری ایجاد نمایید و کد زیر را در آن تایپ کنید:

function[xl,x2]= quadratic3(a,b,c)

%thisfunction returns the roots of

% a quadratic equation.

%lt takes 3 input arguments

% which are the co-efficients of x2, x and the

%constant term

%lt returns the roots

d = disc(a,b,c);

xl =(-b + d)/(2*a);

x2 =(-b – d)/(2*a);

end%end of quadratic3

شما می توانید تابع بالا را از خط فرمان به این صورت فراخوانی کنید:

quadratic(2,4,-4)

متلب دستورات بالا را اجرا خواهد کرد و نتیجه زیر را بر می گرداند:

495

متغیرهای عمومی

ادامه مطلب....

مهندس احمدی بازدید : 231 یکشنبه 09 آبان 1395 نظرات (0)

  

نوشتن فایل های روزانه

 
 

نوشتن فایل های روزانه

فایل های روزانه سیستم ورودی های فعال از جلسه متلب هستند. تابع روزانه دقیقاً یک کپی از جلسه شما در فایل دیسک به جز گرافیک، ایجاد می کنند

turn onفایل روزانه، تایپ کنید:

diary

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

turn off فایل روزانه:

diary logdata.0ut

dairy off

شما می توانید فایل روزانه را در یک ویرایشگر متن باز کنید.

 

خروج داده برای فایل های داده متنی سطح  پایین  i/o

تاکنون، ما آرایه های عددی را استخراج کردیم.اگرچه ممکن است شما به ایجاد فایل های متنی دیگر نیاز داشته باشید، شامل ترکیباتی از داده کاراکتری و عددی، فایل های خروجی غیر مستطیلی، یا فایل های با طرح های رمزگذاری غیر اسکی.برای این منظور، متلب تابع fprintf سطح پایین را فراهم می کند.

همانطور که در فعالیت های فایل سطح پایین، قبل از استخراج، شما نیاز به بازکردن یا ایجاد یک فایل با تابع fopenدارید و شناسه فایل را می گیرید.به طور پیش فرض، fopen یک فایل را برای دسترسی فقط خواندنی باز می کند. شما باید نوشتن یا افزودن را مشخص کنید، مانند’w’ و ‘a’.

پس از پردازش فایل شما نیاز به بستن آن با تابع fclose دارید.

مثال زیر این مفهوم را نشان می دهد:

مثال

یک فایل اسکریپت ایجاد نمایید و کد زیر را در آن تایپ کنید:

% create a matrix y, with two rows

x = 0:10:100;

y =[x;log(x)];

 

% open a file for writing

fid = fopen(‘logtable.txt‘, ‘w’);

 

% table header

fprintf(fid, ‘log      function\n\n‘);

 

% print values in column order

% two values appear on each row of the file

fprintf(fid, ‘%f      %f\n‘, y);

fclose(fid);

ادامه مطلب....

مهندس احمدی بازدید : 283 یکشنبه 09 آبان 1395 نظرات (0)

   

نمودار در متلب

 
 

نمودار در متلب

اضافه کردن عنوان، برچسب ها،خط مشبک و مقیاس گذاری  بر روی نمودار

متلب به شما اجازه اضافه کردن عنوان، برچسب ها در امتداد محور –  x و محور- y، خطوط مشبک و همچنینتنظیم محورهای منظم روی نمودار را می دهد.

  • دستورات xlabel و ylabel برچسب هایی در طول محورx و محور y تولید می کند.
  • دستور title به شما اجازه می دهد یک عنوان بر روی گراف بگذارید.
  • دستور grid on به شما اجازه می دهد خطوط مشبک بر روی نمودار بگذارید.
  • دستور axis equal اجازه تولید طرح با عامل های مقیاس مشترک و فضاها بر روی هر دو محور را می دهد
  • دستور axis square یک طرح مربع تولید می کند.

مثال

یک فایل اسکریپت ایجاد کنید و کد زیر را تایپ نمایید:

x =[o:0.0l:lo];

y = sin (x);

plot (x, y), xlabel ( ‘x‘ ) , ylabel ( ‘ sin (x) ‘),

 title ( ‘sin (x) graph’ ) , grid on, axis equal

 

متلب نمودار زیر را  تولید می کند:

511

 

ترسیم چند تابع بر روی یک نمودار

شما می توانید چند نمودار بر روی یک طرح رسم نمایید.مثال زیراین مفهوم را شرح می دهد:

مثال

یک فایل اسکریپت ایجاد کنید و کد زیر را تایپ نمایید:

ادامه مطلب....

مهندس احمدی بازدید : 218 یکشنبه 09 آبان 1395 نظرات (0)

  

نمودار در متلب

 
 

نمودار در متلب

تنظیم رنگ ها در گراف

متلب گزینه هایی برای هشت رنگ اصلی برای رسم نمودار فراهم کرده است.این جدول رنگ ها و کد ها را نشان می دهد:

کد رنگ
w سفید
k سیاه
b آبی
r قرمز
c فیروزه ای
g سبز
m بنفش
y زرد

 

مثال

به ما اجازه دهید نموداری از چندجمله ای را رسم کنیم

  1. f(x) = 3x4+2x3+7x2+2x+9 ,
  2. g(x)=5x3+9x+2

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

x =[-10:0.01:10];

y =3*x. ^4+2* x. ^3+7* x. ^2+2* x +9;

g =5* x. ^3+9* x +2;

plot(x, y,‘r‘, x, g, ‘g‘)

زمانی که شما فایل را اجرا می کنید، متلب نمودار زیر را تولید می کند:

513

تنظیم مقیاس محورها

دستورaxis اجازه تنظیم مقیاس محورها را می دهد. شما می توانید مقادیر حداقل و حداکثر برای محور x و y با استفاده از دستور زیر در روش زیر فراهم کنید:

514

مثال زیر این را نمایش می دهد:

ادامه مطلب....

مهندس احمدی بازدید : 110 یکشنبه 09 آبان 1395 نظرات (0)

   

تولید طرح های فرعی

 
 

تولید طرح های فرعی

زمانی که شما آرایه ای از طرح ها در یک شکل ایجاد می کنید،هر یک از طرح ها یک زیر طرح(طرح فرعی) نامیده می شوند. دستور  subplot برای ایجاد زیرطرح است.

نحوه اجرا در متلب برای این دستور به این صورت است:

516

که، m  و  n تعدادی از سطرها و ستون ها از آرایه طرح و p که برای قرار دادن یک طرح خاص مشخص شده است.

هر طرح با دستور زیر طرح ایجاد شده است که می تواند  ویژگی های خودش را داشته باشد.مثال زیر این مفهوم را شرح می دهد:

مثال

اجازه دهید 2 طرح تولید کنیم:

y=e-1.5xsin(10x)

y=e-2xsin(10x)

یک فایل اسکریپت ایجاد کنید و کد زیر را تایپ نمایید:

x =[0:0.0l:5];

y = exp(-l.5*x).*sin(l0*x);

subplot(l,2,l)

plot(x,y), xlabel(‘x‘),ylabel(‘exp(-1.5x)*sin(10x)‘),axis([05-11])

 

ادامه مطلب.....

مهندس احمدی بازدید : 121 یکشنبه 09 آبان 1395 نظرات (0)

   

حل معادلات مرتبه بالاتر در متلب

 
 

حل معادلات مرتبه بالاتر در متلب

دستور solve  همچنین می تواند معادلات مرتبه بالاتر را حل کند. برای مثال، اجازه دهید  یک معادله مکعبی به صورت

x-3)2(x-7)=0) را حل کنیم:

solve(‘(x-3)^2*(x-7)= 0‘)

متلب دستورات بالا را اجرا می کند و نتایج زیر را بر می گرداند:

536

در رابطه با معادلات مرتبه بالاتر ، ریشه ها حاوی شرایط بیشتر و بلندی هستند. شما می توانید  مقادیر عددی مانند ریشه ها را  با تبدیل  آن ها double  کنید.مثال زیر معادله مرتبه چهارx4-7x3+3x2-5x+9=0 را حل می کند.

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

eq =‘x^4 – 7*x^3 + 3*x^2 – 5*x + 9 = o’;

s = solve(eq);

disp(‘the first root is: ‘), disp(s(l));

disp(‘the second root is: ‘), disp(s(2));

disp(‘the third root is: ‘), disp(s(3));

disp(‘the fourth root is: ‘), disp(s(4));

% converting the roots to double type

disp(‘numeric value of first root’), disp(double(s(l)));

disp(‘numeric value of second root’), disp(double(s(2)));

disp(‘numeric value of third root’), disp(double(s(3)));

disp(‘numeric value of fourth root’), disp(double(s(4)));

 

زمانی که فایل را ایجاد می کنید، نتیجه زیر برگردانده می شود:

537

لطفاً به دو ریشه آخر توجه داشته باشید که ارقام پیچیده ای هستند.

 

ادامه مطلب....

مهندس احمدی بازدید : 273 یکشنبه 09 آبان 1395 نظرات (0)

  

ترسیم نمودار میله ای در متلب

 
 

ترسیم نمودار میله ای در متلب

دستور  bar  ییک نمودار میله ای دو بعدی را رسم می کند. اجازه دهید مثالی با این نظر را شرح دهیم.

مثال

فرض کنید یک کلاس با 10 دانش آموز وجود دارد. ما می دانیم درصد به دست آمده از دانش آموزان 75،58،90،8 7،50 ،85،92، 7 5،60, 95 است.ما نمودار میله ای را برای این داده ها ترسیم خواهیم کرد.

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ کنید:

ادامه مطلب....

مهندس احمدی بازدید : 274 یکشنبه 09 آبان 1395 نظرات (0)

  

حل معادلات درجه دوم به کمک متلب

 
 

حل معادلات درجه دوم به کمک متلب

دستور solve  همچنین می تواند معادله مرتبه بالاتر  را حل کند. اغلب برای حل معادلات درجه دوم استفاده می شود. تابع ریشه هایی از معادلات در آرایه را برمی گرداند.

مثال زیر معادله درجه دوم x2-7x+12=0 را حل می کند.یک فایل اسکریپت ایجاد کنید و  کد زیر را در آن تایپ نمایید:

eq =‘x^2 -7*x + 12 = 0′;

s = solve(eq);

disp(‘the first root is: ‘), disp(s(l));

disp(‘the second root is: ‘), disp(s(2));

 

ادامه مطلب....

مهندس احمدی بازدید : 122 یکشنبه 09 آبان 1395 نظرات (0)

 

ترسیم طرح برجسته در متلب

 
 

ترسیم طرح برجسته در متلب

خط طرح برجسته از یک تابع از دو متغیر  یک منحنی شکل است که تابع مقدار ثابتی دارد. خطوط طرح برجسته  برای ایجاد نقشه های با پیوستن نقاط ارتفاعی  برابر بالاتر از یک سطح داده شده، مانند میانگین سطح دریا استفاده می شود.

متلب یک تابع contour برای رسم نقشه طرح برجسته فراهم می کند.

مثال

به ما اجازه دهید  یک طرح برجسته  تولید کنیم که   خطوط طرح برجسته  برای تابع g=f(x,y) داده شده را نشان می دهد. این تابع دو متغیر دارد.بنابراین ما دو متغیر وابسته را تولید خواهیم کرد، به عنوان مثال ، دو مجموعه داده  x و y. این با فراخوانی دستور meshgird انجام می شود.

دستور  meshgird برای تولید ماتریسی از عناصر  که در محدوده  بالای طول  x و y به صورت تعیین شده از افزایش در هر مورد استفاده شده است.

اجازه دهید با تابع (g=f(x,y را ترسیم کنیم ، که -5و -3 است. اجازه دهید افزایش 0.1 برای هر دو مقدار داشته باشیم. متغیرهای مجموعه به این صورت هستند:

519

در نهایت، ما به تعیین تابع نیاز داریم. اجازه دهید تابع ما این گونه باشد:x2+y2

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

[x, y] = meshgrid (-5: o . 1: 5, -3:0 . 1:3) ;%independent variables

g = x . ^2+ y. ^2; %ourfunction

contour (x, y, g) % call the contour function

print-deps graph . eps

زمانی که شما فایل را اجرا می کنید، متلب طرح برجسته زیر را نمایش می دهد:

520

اجازه دهید ما کد را برای آراستن طرح برجسته کمی تغییر دهیم:

[x, y] = meshgrid(-5: o . 1: 5, -3:0 . 1:3);%independent variables

g = x . ”2+ y. a2; %ourfunction

[c, h]= contour(x,y,g) ;% ca11 the contour function 

ادامه مطلب.....

مهندس احمدی بازدید : 91 یکشنبه 09 آبان 1395 نظرات (0)

  

طرح های سه بعدی

 
 

طرح های سه بعدی

اساساً طرح های سه بعدی یک تعیین امن با تابع در دو متغیر را نشان می دهد.(g=f(x,y .

قبل از آن، g را تعریف کنید، ما اول یک مجموعه از نقاط (x,y)  روی دامنه ای از   تابع  با استفاده از دستور meshgrid ایجاد می کند.

مثال زیر این مفهوم را نشان می دهد:

مثال

اجازه دهید یک طرح سطح سه بعدی برای تابع g=xe-(x2+y2) ایجاد کنیم.

یک فایل اسکریپت ایجاد نمایید و کد زیر را تایپ نمایید:

[x,y]= meshg1:id(-2: .2:2);

g = x .* exp(-x.a2- y.a2);

surf (x, yl gl

print:-deps gzcaplmeps

زمانی که  فایل را ایجاد می کنید، متلب طرح سه بعدی زسر را نشان می دهد:

ادامه مطلب....

مهندس احمدی بازدید : 119 یکشنبه 09 آبان 1395 نظرات (0)

  

گسترش و جمع آوری معادلات در متلب

 
 

گسترش و جمع آوری معادلات در متلب

دستور expand  و  collect به ترتیب گسترش و مجموع معادله است. مثال زیر  این مفهوم را شرح می دهد:

زمانی که شما با بسیاری از توابع نمادین کار می کنید، شما باید متغیرهای نمادین را تعریف نمایید.

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

syms x %symbolic variable x

syms y %symbolic variable x

% expanding equations

expand((x-5)*(x+9))

expand((x+2)*(x-3)*(x-5)*(x+7))

expand(sin(2*x))

expand(cos(x+y))

% collecting equations

collect(x^3*(x-7))

collect(x^4*(x-3)*(x-5))

 

زمانی که شما فایل را اجرا می کنید، نتایج زیر نشان داده می شوند:

542

 

گسترش و جمع آوری معادلات در octave

شما به بسته symbolicنیاز دارید، که دستور collect  و expand  را به ترتیب برای گسترش و  جمع آوری فراهم کند. مثال زیر این مفهوم را تشریح می کند:

زمانی که شما با تعدادی از توابع نمادین کار می کنید، شما باید متغیرهای نمادین را تعریف کنید اما octave روش های متفاوتی برای تعریف متغیرهای نمادین دارد.توجه کنید که از sin و cos استفاده شده است، آن ها نیز در بسته نمادین تعریف شده اند.

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

% first of all load the package, make sure its installed.

pkg load symbolic

 

% make symbols module available

symbols

 

% define symbolic variables

x = sym (‘x‘);

y = sym )‘y‘(;

z = sym (‘z‘);

% expanding equations

expand((x-5)*(x+9((

expand((x+2)*(x-3)*(x-5)*(x+7))

expand(sin(2*x))

expand(cos(x+y))

% collecting equations

collect(x^3*(x-7), z)

collect(x^4*(x-3)*(x-5), z)

 

ادامه مطلب.....

مهندس احمدی بازدید : 71 یکشنبه 09 آبان 1395 نظرات (0)

  

حساب دیفرانسیل و انتگرال در متلب

 
 

حساب دیفرانسیل و انتگرال در متلب

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

در این فصل و چند فصل آینده، ما با مسائلی از محاسبات انتگرال و دیفرانسیل سر و کار خواهیم داشت. در این فصل ما درباره مفاهیم پیش از محاسبه انتگرال و دیفرانسیل بحث خواهیم کرد، به عنوان مثال، محاسبه حد توابع و  بررسی خواص محدودیت.

در  دیفرانسیل فصل بعد ما از عبارات مشتق می گیریم و محل حداکثر و حداقل را بر روی نمودار پیدا می کنیم. همچنین درباره حل معادلات دیفرانسیل بحث می کنیم.در نهایت، در فصل ادغام  ما درباره محاسبه انتگرال بحث خواهیم کرد.

محاسبه انتگرال و دیفرانسیل حدها

متلب دستور limit را برای محاسبه حدها فراهم کرده است.  در ساده ترین شکل آن، دستور limit عبارت را به صورت آرگومان می گیرد و حد عبارت را مستقل از متغیر صفر پیدا می کند.

برای مثال، اجازه دهید حد تابع3+5)/(x4+7) f(x)=(x را محاسبه کنیم. x  به صفر میل می کند.

syms x

limit ( (x^3+5) / (x^4+7))

متلب دستورات بالا را اجرا خواهد کرد و نتیجه زیر را نشان می دهد:

545

دستور limit  در حوزه ی محاسبات نمادین رخ می دهد؛  شما با استفاده از دستور syms به متلب می گویید که از متغیرهای نمادین استفاده کرده اید. شما همچنین می توانید حد توابع را ، به عنوان گرایش تعدادی دیگر از متغیرها به صفر محاسبه کنید. برای محاسبه limx->a(f(x))، ما از دستور limit  با آرگومان هایش استفاده می کنیم.. اول بودن عبارت و دوم تعداد است، که  نزدیک شدن  x در اینجا به سمت  a است.

برای مثال، به عنوان مثال اجازه دهید حد توابع f(x)=(x-3)/(x-1) را محاسبه کنیم، که x به سمت 1 میل می کند.

limit ( (x -3)/ (x-1) , 1)

متلب دستورات بالا را اجرا خواهد کرد و نتایج زیر را برمی گرداند:

546

اجازه دهید مثال دیگری بزنیم:

limit(x^2+5,3)

متلب دستور بالا را اجرا خواهد کرد ونتیجه زیر را نشان می دهد:

ادامه مطلب.....

مهندس احمدی بازدید : 101 یکشنبه 09 آبان 1395 نظرات (0)

  

سیستم حل معادلات در متلب

 
 

سیستم حل  معادلات در متلب

دستور  solve همچنین می تواند برای تولید راه حل هایی از سیستم معادله شامل بیش از یک متغیر استفاده شود. اجزه دهید از یک مثال ساده برای اثبات آن استفاده کنیم.

اجازه دهید این معادله را حل کنیم:

5x+9y=5

3x-6y=4

یک فایل اسکریپت ایجاد کنید و کد زیر را تایپ نمایید:

s = solve(‘5*x + 9*y = 5‘,‘3*x – 6*y = 4‘);

s . x

s . y

 

زمانی که شما فایل را ایجاد می کنید، نتیجه زیر نمایش داده می شود.

539

با همین روش شما می توانید سیستم های خطی بزرگتری را حل نمایید.مجموعه معادلات زیر را در نظر داشته باشید:

x+3y-2z=5

3x+5y+6z=7

2x+4y+3z=8

 

سیستم حل معادلات در octave

ما روش های اندک متفاوتی برای حل سیستم از  معادلات خطی’n’در ‘n’ مجهول داریم.اجازه دهید از یک مثال ساده برای نمایش آن استفاده کنیم.

اجازه دهید معادلات زیر را حل کنیم:

5x+9y=5

3x-6y=4

همچنین یک سیستم از معادلات خطی می تواند به  عنوان معادله ماتریس مجرد ax=b نوشته شود، که a ضریب ماتریس است، b بردار ستونی که حاوی سمت راست معادله خطی است و x بردار ستونی نشان دهنده راه حل که در برنامه زیر نشان داده می شود:

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ کنید:

a =[5, 9;3,-6];

b = [5 ; 4] ;

a \ b

زمانی که شما فایل را اجرا می کنید، نتیجه زیر نشان داده می شود:

541

با همین روش،  شما می توانید سیستم های خطی بزرگتر به صورت داده شده در زیر را حل نمایید:

ادامه مطلب.....

مهندس احمدی بازدید : 114 یکشنبه 09 آبان 1395 نظرات (0)

  

تایید مشخصات اساسی حدها

 
 

تایید مشخصات اساسی حدها

قضیه حد اساسی تعدادی از مشخصات اساسی حدها را فراهم می آورد. به شرح زیر است:

549

اجازه دهید دو تابع زیر را در نظر بگیریم:

  1. f(x)=(3x+5)/(x-3)
  2. g(x)=x2+1.

اجازه دهید حدهایی از تابع x که به سمت 5 میل می کند، از هر دو تابع و  خواص اولیه از حدها  با استفاده از دو تابع در متلب بررسی می شود.

مثال

یک فایل اسکربیپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

syms x

f =(3*x +5)/(x-3);

g = x^2+l;

11 = 1imit(f,4)

l2 = limit (g,4)

ladd = limit(f + g,4)

lsub = limit(f – g,4)

lmult = limit(f*q,4)

ldiv = limit (f/9,4)

زمانی که شما فایل را اجرا می کنید، این نمایش می یابد:

550

تایید مشخصات اساسی حدها  با استفاده از octave

در زیر نسخه octave مثال بالا با استفاده از بسته symbolic است، سعی کنید نتایج را اجرا کنید:

pkg load symbolic

symbols

x = sym(“x”);

f =(3*x +5)/(x-3);

g = x^2+1;

l1=subs(f, x,4)

l2 = subs (g, x,4)

1add = subs (f+g, x,4)

lsub = subs (f-g, x,4)

lmult = subs (f*g, x,4)

ldiv = subs (f/g, x,4)

 

ادامه مطلب.....

مهندس احمدی بازدید : 116 یکشنبه 09 آبان 1395 نظرات (0)

  

محاسبات بالاتر به منظور مشتق

 
 

محاسبات بالاتر به منظور مشتق

برای محاسبه بالاتری از مشتق تابع f، ما از نحوه اجرا در متلب (diff(f,n استفاده می کنیم.

به ما اجازه دهید مشتق دوم از تابع y=f(x)=x.e-3x بگیریم.

f = x*exp(-3*x);

diff(f,2)

متلب کد را اجرا خواهد کرد و نتیجه زیر را برمی گرداند:

558

معادله octave زیر معادل محاسبات بالا است:

pkg load symbolic

symbols

x = sym(“x”):

f = x*exp(-3*x);

differentiate(f, x,2)


مثال

در مثال زیر، ما یک مسئله را حل می کنیم. تابع (y=f(x)=3sin(x)+7cos(5x داده شده است.ما می خواهیم بفهمیم معادله (f”+f=-5cos(2x درست را نگه میدارد.

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن وارد کنید:

syms x

y =3*sin(x)+7*cos(5*x);% defining the function

lhs = diff(y,2)+y;%evaluting the lhs of the equation

rhs =-5*cos(2*x);%rhs of the equation

if(isequal(lhs,rhs))

disp(‘yes, the equation holds true’);

else

disp(‘no, the equation does not hold true’);

end

disp(‘value of lhs is: ‘), disp(lhs);

 

زمانی که شما فایل را ایجاد می کنید، نتیجه زیر نشان داده می شود:

559

معادله octave زیر  محاسبات بالا را نشان می دهد:

pkg load symbolic

symbols

x = sym(“x”) ;

y =3*sin(x)+7*cos(5*x);% defining the function

lhs = differentiate(y, x,2)+ y;%evaluting the lhs of the equation

rhs =-5*cos(2*x);%rhs of the equation

if(lhs == rhs)

disp(‘yes, the equation holds true’);

else

disp(‘no, the equation does not hold true’);

ادامه مطلب....

مهندس احمدی بازدید : 224 یکشنبه 09 آبان 1395 نظرات (0)

  

مشتقات نمایی، لگاریتمی و توابع مثلثاتی

 
 

مشتقات نمایی، لگاریتمی و توابع مثلثاتی

جدول زیر مشتقات نمایی، لگاریتمی و توابع مثلثاتی را به طور معمولی استفاده می کند:

مشتق تابع
ca.x.ln c.a(در لگاریتم طبیعی) ca.x
ex ex
1/x ln x
1/x.ln c lncx
xx.(1+ln x) xx
cos(x) sin(x)
-sin(x) cos(x)
sec2(x), or 1/cos2(x) , or 1+tan2(x) tan(x)
-csc2(x),or -1/sin2(x),or –(1+cot2(x)) cot(x)
sec(x).tan(x) sec(x)
-csc(x).cot(x) csc(x)

مثال

یک فایل اسکریپت  ایجاد کنید و کد زیر  را در آن تایپ نمایید:

syms x

y = exp(x)

diff(y)

y = x^9

diff(y)

y = sin(x)

diff(y)

y = tan(x)

diff(y)

y = cos(x)

diff(y)

y = loq(x)

diff(y)

y = logl0(x)

diff(y)

y = sin(x)^2

diff(y)

y = cos(3*x^2+2*x +1)

diff(y)

y = exp(x) / sin(x)

diff(y)

زمانی که فایل را ایجاد می کنید، نتیجه زیر نشان داده می شود:

ادامه مطلب.....

مهندس احمدی بازدید : 114 یکشنبه 09 آبان 1395 نظرات (0)

  

تبدیلات-۲

 
 

تبدیلات-2

تبدیل laplace معکوس

متلب اجازه محاسبه تبدیل معکوس laplace را با استفاده از دستور ilplace می دهد.

برای مثال،

ilaplace(l/s^3)

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

585

مثال

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

syms s t a b w

ilaplace(l/s^7)

ilaplace(2/(w+s))

ilaplace(s/(s^2+4))

ilaplace(exp(-b*t))

ilaplace(w/(s^2+ w^2))

ilaplace(s/(s^2+ w^2))

زمانی که فایل را اجرا می کنید،نتیجه زیر نشان داده می شود:

586

 تبدیلات fourior

تبدیلات fourior یک تابع ریاضی از زمان است،(f(t،  برای یک تابع جدید، در برخی مواقع  به f اشاره می کند که  آرگومان فرکانس با واحدهایی از چرخش یا شعاع در ثانیه است.تابع جدیدبه عنوانتبدیل fourior  و یا طیف فرکانسی از تابع f شناخته می شود.

مثال

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

syms x

f = exp(—2*x^2);%ourfunction

ezplot(f,[-2,2])% plot of ourfunction

ft = fourier(f) %fourier transform

زمانی که فایل را اجرا می کنید، متلب نمودار زیر را ترسیم می کند:

ادامه مطلب.....

مهندس احمدی بازدید : 224 یکشنبه 09 آبان 1395 نظرات (0)

  

چندجمله ای در متلب

 
 

چندجمله ای در متلب

متلب چندجمله ای ها را به عنوان بردار سطری دربردارنده  ضرایب به منظور قدرت نزولی ارائه می دهد.

برای مثال معادله p(x)=x4+7x3-5x+9 می تواند به این صورت نشان داده شود:

p=[1 7 0 -5 9]

ارزیابی چندجمله ای ها

تابع polyval برای ارزیابی چندجمله ای با مقادیر مشخص استفاده شده است.برای مثال، برای مثال،برای ارزیابی چند جمله ای قبلیp ، با x=4، تایپ کنید:

p = [170-59] ;

po1yva1(p, 4)

متلب دستورات بالا را اجرا خواهد کرد و نتیجه زیر را نمایش می دهد:

578

همچنین متلب تابع  polyvalm را برای ارزیابی ماتریس چندجمله ای فراهم می کند. ماتریس چندجمله ای یک چندجمله ای با مقادیر ماتریس هاست.

برای مثال، اجازه دهید یا ماتریس مربعی x ایجاد کنیم و چندجمله ای p در x را ارزیابی کنیم:

p = [170-59] ;

x =[12-34;2-563;3102;5-798];

po1yva1m(p, x)

متلب دستورات بالا را اجرا می کند و نتیجه زیر را نشان می دهد:

579

جستجوی ریشه های چندجمله ای ها

تابع roots ریشه های چندجمله ای را محاسبه می کندو ضرایب چندجمله ای را برمی گراند.برای مثال:

p =[l70-59];

r = roots(p)

متلب دستورات بالا را اجرا خواهد کرد و نتیجه زیر را برمی گرداند:

580

تابع polyمعکوس تابع roots است و ضرایب چندجمله ای را برمی گرداند:

p2 = poly(r)

متلب دستورات بالا را اجرا می کند و نتیجه زیر را نشان می دهد:

581

منحنی چندجمله ای مناسب

تابع    polyfit ضرایبی از یک چندجمله ای را که فایل های یک مجموعه از داده هستند در مفهوم مربع حداقل پیدا می کند. اگر x و y  دو بردار دربردارنده داده x و y باشند که برای چندجمله ای مرتبه n مناسب است، در آن صورت ما چندجمله ای مناسب داده را می نویسیم:

p = polyfit (x, y,n)

مثال

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

x = [123456] ; y =[5.543.1128290.7498.4978. 67] ;%data

p = polyfit(x,y,4)%get the polynomial

%compute the values of the polyfit estimate over a finer range,

%and plot the estimate over the real data values for comparison:

x2 =l:.l:6;

y2 = polyval(p,x2);

ادامه مطلب.....

مهندس احمدی بازدید : 93 یکشنبه 09 آبان 1395 نظرات (0)

   

حل معادلات دیفرانسیل

 
 

حل معادلات دیفرانسیل

متلب دستور dsolve را برای حل معادلات دیفرانسیل نمادین فراهم کرده است.

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

565

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

این یک راه حل نمادی با یک مجموعه از ثابت های اختیاری که برچسب های متلب c1,c2,و غیره است را باز می گرداند.

همچنین شما می توانید شرایط مرزی و اولیه خاصی برای مسئله، به عنوان  لیست کاما – جدا از هم معادله به صورت زیر :

566

برای اهداف استفاده از دستور dsolve، مشتق ها همراه با d نشان داده می شوند.برای مثال، معادله مانند f’(t)=-2*f+cost(t) به این صورت وارد می شود:

ادامه مطلب....

مهندس احمدی بازدید : 164 یکشنبه 09 آبان 1395 نظرات (0)

  

پیدا کردن حداقل و حداکثر از منحنی

 
 

پیدا کردن حداقل و حداکثر از منحنی

اگر ما حداقل و حداکثر را از یک نمودار جستجو کنیم، ما به ط.ر اساسی بیش ترین و کمترین نقاط روی نمودار از یک تابع در محل خاص یا محدوده خاصی از مقادیر از متغیر نمادین را جستجو می کنیم.

برای تابع y=f(x) نقاط روی نمودار که در نمودار شیب صفر دارند نقاط ایستا نامیده می شوند. به عبارت دیگر نقاط ایستا f’(x)=0 هستند.

برای پیدا کردن نقاط ایستا از تابع دیفرانسیل ما ، نیاز به مجموعه مشتق معادله صفر و حل معادلات داریم.

مثال

اجازه دهید نقاط ایستا از تابع f(x)=2x3+3x2-12x+17 را در مراحل زیر بگیریم:

1.اول اجازه دهید  تابع را وارد کنیم و نمودار آن را رسم کنیم:

syms x

y =2*x^3+3*x^2-l2*x +17;% defining the function

ezplot(y)

متلب کد را اجرا می کند و طرح زیر را برمی گرداند:

560

اینجا کد معادل octave  برای مثال بالا است:

pkg load symbolic

symbols

x = sym )‘ x'( :

y =inline(“2*x^3 + 3*x^2 – l2*x + l7”);

ezplot(y)

print-deps gxaph.eps

  1. فرض ما بر این است که تعدادی محل حداکثر و حداقل روی نمودار وجود دارد، بنابراین ما محل حداکثر و حداقل برای فاصله زمانی[-2,2] را بر روی نمودارنشان می دهیم.

syms x

y =2*x^3+3*x^2-l2*x +17;% defining the function

ezplot (y, [-2, 2])

متلب کد را اجرا خواهد کرد و طرح زیر را بر می گرداند:

ادامه مطلب....

مهندس احمدی بازدید : 136 یکشنبه 09 آبان 1395 نظرات (0)

  

جستجوی انتگرال معین برای استفاده در متلب

 
 

جستجوی انتگرال معین برای استفاده در متلب

به این مفهوم که، انتگرال معین ا ساساً حدی از جمع است، ما انتگرال معین را برای پیدا کردن مناطقی مانند مناطق بین  منحنی و محور x و منطقه بین دو منحنی  استفاده می کنیم. انتگرال معین همچنین می تواند در دیگر محل ها مورد استفاده قرار گیرد، که مقادیر مورد نیاز  می تواند به عنوان حدی از جمع بیان شود.

دستور int  می تواند برای ادغام  عبور حدها بر روی انتگرالی که شما می خواهید محاسبه کنیداستفاه شود.

برای محاسبه

572

می نویسیم،

573

برای مثال، برای محاسبه  می نویسیم:

int(x,4,9)

متلب دستورات بالا را اجرا خواهد کرد و نتیجه زیر را بازمی گرداند:

574

در زیر معادله octave محاسبات بالا است:

pkg load symbolic

symbols

x = sym(“x”):

f = x;

c = [1, 0] :

integral = polyint(c);

a = polyval(integral,9)- polyval(integral,4);

display(‘area: ‘), disp(double(a));

راه حل متناوب می تواند با استفاده از تابعquad()داده شده به صورت زیر فراهم شود:

pkg load symbolic

symbols

f =inline(“x”);

[a, ierror, nfneval]= quad(f,4,9);

display(‘area: ‘), disp(double(a));


مثال1

اجازه دهید محل در میان قرار گرفته شده در بین محورxو منحنیy=x3-2x+5 و عرض x=1و x=2 را محاسبه نماییم.

محل مورد نیاز به این صورت داده شده است:

575

یک فایل اسکریپت ایجاد کنید و کد زیر را تایپ نمایید:

f = x^3-2*x +5;

a =int (f, 1, 2)

display(‘area: ‘), disp(double(a));

زمانی که شما فایل را ایجاد می کنید، نتیجه زیر نمایش می یابد:

576

معادلهoctaveمحاسبات بالا در زیر آمده است:

pkg load symbolic

symbols

x = sym(“x”):

f = x^3-2*x +5;

c =[l,0,-2, 5]

integral = polyint(c);

a = polyval(integral,2)- polyval(integral,l);

display(‘area: ‘), disp(double(a));

راه حل متناوب می تواند با استفاده از تابع quad() داده شده octaveزیر را فراهم کند:

pkg load symbolic

symbols

x =   ( “x” ) ;

f =inline(“x^3 – 2*x +5”);

[a, ierror, nfneval]= quad(f,l,2);

display(‘area: ‘), disp(double(a));

ادامه مطلب....

مهندس احمدی بازدید : 139 یکشنبه 09 آبان 1395 نظرات (0)

  

تبدیلات-۱

 
 

تبدیلات

متلب دستوری را برای کار با تبدیلات، مانند تبدیلات laplac و fourier فراهم کرده است.

تبدیلات  در علوم مهندسی به عنوان ابزاری برای تجزیه و تحلیل ساده شده و نگاه کردن به داده از زاویه دیگر استفاده می کند.

برای مثال تبدیل fourior  اجازه می دهد سیگنال به عنوان  تابعی از زمان  به تابعی از فرکانس تبدیل شود.تبدیلات laplace اجازه تبدیل معادلات دیفرانسیل به معادلات جبری را می دهد.

متلب دستورات fft، fourior وlaplace را برای کار با laplace ، تبدیلات fourior،fourior سریع  فراهم کرده است.

تبدیل laplace

تبدیل laplace از تابع زمانی f(t) با انتگرال زیر داده شده است:

 

ادامه مطلب....

مهندس احمدی بازدید : 120 یکشنبه 09 آبان 1395 نظرات (0)

  

دیفرانسیل

 
 

دیفرانسیل

متلب دستور diff  را برای محاسبه مشتقات نمادین فراهم کرده است. ساده ترین شکل، شما  می خواهید دیفرانسیل را با دستورdiff به عنوان آرگومان انتقال دهید.

برای مثال، اجازه دهید مشتقی از تابع f(t)=3t2+2t2 را محاسبه کنیم.

مثال

یک فایل  اسکریپت ایجاد کنید و  کد زیر را در آن وارد نمایید:

syms t

f =3*t^2+2*t^(-2);

diff (f)

در زیر معادلات octave محاسبات بالا است:زمانی که کد بالا  وارد و اجرا می شود، نتیجه زیر تولید می شود:

554

pkg load symbolic

symbols

t = sym)”t”(:

f =3*ta2+2*ta (—2(;

differentiate (f, t)

octave کد را اجرا می کند و نتیجه زیر را بر می گرداند:

555

تایید قوانین ابتدایی دیفرانسیل

اجازه دهید به طور خلاصه وضعیت معادلات مختلف یا قوانین برای دیفرانسیل از تابع و این مقررات را بررسی کنیم. به این منظور، ما f’(x) را برای  مشتق مرتبه اول و f”(x) را برای مشتق مرتبه دوم خواهیم نوشت.

در زیر قوانینی برای دیفرانسیل وجود دارد:

قانون 1

برای توابع f و g و اعداد حقیقی a و b مشتقی از تابع هستند:

h(x)=af(x)+bg(x)

با رابطه x داده شده است:

h’(x)=af’(x)+bg’(x)

قانون 2

وضعیت قوانین sum  و  substraction که اگر f و g دو تابع هستند،f’ و g’ به ترتیب مشتق های آن ها هستند.در آن صورت،

(f+g)’=f’+g’

(f-g)’=f’-g’

قانون 3

قانون product حالت هایی است که اگر f و g دو تابع هستند، f’ و g’ به ترتیب مشتق های آن ها هستند.در آن صورت،

(f.g)’ = f’.g + g’.f

قانون 4

قانون خارج قسمت حالت هایی است که اگر fو g دو تابع باشند، f’ و g’به ترتیب مشتق های آن ها هستند، در آن صورت،

(f/g)’=(f’.g – g’.f)/g2

قانون 5

قوانین  چندجمله ای یا نیروی اولیه حالت هایی است که، اگر y=f(x)=xn، در آن صورت f’=n.x(n-1  یک خروجی مستقیم  از قوانین مشتق از  ثابت صفر است، به عنوان مثال، اگر y=k، هر ثابت، در آن صورت f’=0 است.

قانون 6

قانون chain حالت هایی است که، مشتق تابع از تابع h(x)=f(g(x)) با رابطه x است، h’(x)=f’(g(x)).g’(x)

مثال

یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

syms x

syms t

f =(x +2)*(x^2+3)

dexl = diff(f)

f =(t^2+3)*(sqxt(t)+ t^3)

dex2 = diff(f)

f =(x^2-2*x +l)*(3*x^3-5*x^2+2)

dex3 = diff(f)

f =(2*x^2+3*x)/(x^3+l)

dex4 = diff(f)

f = (x^2+1) ^17

der5 = diff(f)

f = (t^3+3* t^2+5*t -9) ^ (-6)

der6 = diff(f)

زمانی که فایل را اجرا می کنید، متلب نتیجه زیر را نمایش می دهد:

556556

ادامه مطلب....

مهندس احمدی بازدید : 78 یکشنبه 09 آبان 1395 نظرات (0)

  

SIMULINK

 
 

simulink

simulink شبیه سازی و مدل مبتنی بر طراحی  برای سیستم های پویا و جایگذاری شده است، که با متلب یکپارچه شده است.simulink، همچنین با کار در ریاضی توسعه یافته، یک جریان داده ابزار زبان برنامه نویسی گرافیکی  برای  مدل سازی، شبیه سازی و تجزیه و تحلیل سیستم های پویا است است. این اساساً  یک بلوک گرافیکی ابزار رسم نمودار با  مجموعه ای قابل تنظیم از بلوک های کتابخانه است. این به شما اجازه می دهد الگوریتم ها را برای مدل و همچنین صادرات نتایج شبیه سازی  به متلب برای تجزیه و تحلیل بیشتر ترکیب کنید.

پشتیبانی های simulink:

  • طراحی سطح سیستم
  • شبیه سازی
  • تولید کد خودکار
  • تست و تایید سیستم های جاسازی شده

اینجا چندین محصول اضافی دیگر برای اعمال ریاضی و سخت افزار بخش سوم  و محصولات نرم افزاری که برای استفاده  با simulink  در دسترس هستند استفاده شده اند.

لیست زیر توصیف مختصری از آن ها ست.

  • جریان وضعیت اجازه توسعه مکانیزم حالت و نمودار حالت را می دهد.
  • رمزگذاری simulink اجازه می دهد به طور خودکار کد منبع c برای پیاده سازی زمان واقعی سیستم تولید شود.
  • هدف xpc به همراه سیستم مبتنی بر x86 محیط شبیه سازی و تست simulink و مدل های جریان حالت در زمان واقعی  بر روی سیستم فیزیکی را فراهم می کند.
  • رمزگذاری جاسازی اهداف جاسازی مخصوص را پشتیبانی می کند.
  • رمزگذاری hdl اجازه تولید به طور خودکار vhdl و verilog قابل ترکیب را می دهد.
  • simevents یک کتابخانه از بلوک های ساختمان گرافیکی برای مدل سازی سیستم های صف فرااهم می کند.

ادامه مطلب....

مهندس احمدی بازدید : 207 یکشنبه 09 آبان 1395 نظرات (0)

  

OCTAVE GNU

 
 

octave  gnu

octave  gnu یک زبان برنامه نویسی سطح بالا مانند متلب است و با متلب بسیار همساز است.همچنین برای محاسبات عددی استفاده می شود.

octave ویژگی های مشترکی با متلب دارد:

  • ماتریس ها انواع داده بنیادی هستند
  • ساختمان آن اعداد پیچیده را پشتیبانی می کند
  • توابع تعریف شده – کاربر را پشتیبانی می کند
  • octave gnu همچنین نرم افزار توزیع مجدد آزادانه است.شما ممکن است توزیع مجدد و یا را تحت واژه هایی از دانش عمومی  کلی(gpl) به عنوان تاسیس نرم افزار رایگان انتشار نمایید.

octave در مقابل متلب

اکثر برناه های متلب در octave اجرا می شوند، اما برخی از برنامه های octave ممکن نیست که در متلب اجرا شوند زیرا، octave مجوز برخی نحوه اجرا در متلبمتلب را ندارند.

برای مثال، متلب تنها تک کوتیشن را پشتیبانی می کند، در حالی که متلب هر دو تک کوتیشن و جفت کوتیشن را برای رشته های معین پشتیبانی می کند. اگر شما در جستجو برای آموزش octave هستید، در آن صورت این آموزش دلپذیر از ابتدا هر دو متلب و همچنین octave را پوشش می دهد.

مثال های سازگار

تقریباً تمامی مثال ها در این آموزش سازگار با متلب همچنین octave هستند.اجازه دهید مثال زیر را در متلب و octave  انجام دهیم که بدون تغییرات نحوه اجرا در متلبنتایج یکسانی را تولید می کند:

این مثال یک طرح 3d-max برای تابع  g=xe-(x2*y2) ایجاد می کند.  یک فایل اسکریپت ایجاد کنید و کد زیر را در آن تایپ نمایید:

[x, y] = meshgrid (-2: .2:2);

g = x .* exp(-x.^2- y.^2);

surf (x, y, g(

print:-deps graph . eps

زمانی که فایل را اجرا می کنید، متلب طرح سه بعدی زیر را نشان می دهد:

592

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

مثال زیر  در نظر دارد که متلب وoctave مطمئناً باید توابع متفاوتی  برای گرفتن ناحیه از منحنی را استفاده کنند:f(x)=x2cos(x)for-4.در زیر نسخه ای از کد در متلب است:

ادامه مطلب....

مهندس احمدی بازدید : 111 یکشنبه 09 آبان 1395 نظرات (0)

 

GUI در متلب-۱

 
 

GUI (رابط گرافیکی برای کاربر) نوعی رابط تـصویری بـرای برنامـه اسـت که  نمونـه خـوب آن میتواند با فـراهم کـردن شـکل و صـورتی ثابـت بـرای برنامـه و همچنـین بـا کنترلگرهـای آشـنا، مثـل

menus وsliders جعبه هـای لیـست) و) list boxes ،(دکمه‌های فشاری) pushbuttons

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

 

یک GUI چگونه کار می کند؟ 

رابــط گرافیکــی (GUI) محیطــی آشــنا بــرای کــاربر فــراهم مــی کنــد. ایــن محــیط حــاویpushbutton‌ها، togglebutton‌ها، list‌ها، menu‌ها، text box  ها، و . . . مـی باشـد که برای همه کاربران آشن است و این موجب میشود که کاربر به جای مشغول کردن ذهن خود با چنـد وچون اجرای برنامه و پیچیدگی آن، تنها روی استفاده از آن تمرکز کند. ایجاد رابط های گرافیکـی بـرای برنامه نویس کار مشکلی است. زیرا برنامهای که بـر پایـهGUI  طراحـی شـده بایـد در هـر زمـان آمـاده ورودیهای ماوس و (یا احت مالاً ورودیهای کیبرد ) روی هر یک از عناصر خـود باشـد. ایـن ورودیهـا بـهevent‌ها معروفند. برنامهای که به این event‌ها پاسخ گوید، event driven نامیده می شود.  سه عنصر اساسی لازم برای ایجاد رابط گرافیکی (matlab (GUI عبارتند از:

1-   (Components) اجزا

عناصر درونpushbutton) GUI  ها،label  ها،editbox  ها ) اجزای گرافیکی نام دارند .

انواع این اجزا شامل کنتـرلهـای گرافیکـی، (ماننـدpushbutton  هـا،editbox  هـا،list  هـا،slider‌ها و. . .) عناصر ثابت و بدون تغییر (مانند قابها و نوشتههـا )، منوهـا و محورهـای مختـصاتهستند. کنترلهای گرافیکی و عناصر ثابت توسط تابعuncontenxmenu  به وجود میآیند. در نهایت،محورهای مختصات که وظیفه نمایش داده های گرافیکی را بر عهده دارند، توسـط تـابعaxes  بـه وجـودمیآیند.

2-   (Figures) اشکال

اجزایGUI  باید درون یکfigure  مرتب شوند، که پنجـرهای روی صـفحه کـامپیوتر اسـت. پیش از اینfigure  ها به طور خودکار هنگام ترسیم دادهها بوجود می آمدند. با این وجـود،figure  های خالی را نیز میتوان با دستور figure  ایجاد کرد و از آنهـا مـیتـوان بـرای نگـهداری و کنـار هـمگذاشتن اجزای گرافیکی استفاده کرد.

3-   (Callbacks) فراخوان‌ها

باید راهی برای انجام عملی خاص هنگامی که کاربر با ماوس روی یک دکمه کلیک یا اطلاعاتی را توسط کیبرد تایپ می کند، وجود داشته باشد. هر کلیک ماوس یا فشار کلید از صفحه کلید یـکevent  تلقی می شود و برنامه matlab باید با اجرای تابع مربوطه، به اینevent  پاسخ گوید. به عنـو ان مثـال،اگر کاربر روی یک دکمه کلیک کند، این پیش آمد باید سـبب اجـرای کـد مربـوط بـهfunction  آن دکمه شود. کد اجرا شده در پاسخ به این پیش آمد، callback نام دارد. در حقیقت باید برای عملکـردهر جزء گرافیکی GUI یه callback وجود داشته باشد.

عناصر اصلیGUI  ها در زیر به خلاصه و نمونههایی از آنها در شکل 1-1 نشان داده شـده اسـت.

در ادامه مثالهایی از این عناصر را مطالعه کرده و سپس با استفاده از آنها به ایجـادGUI  هـای کـاربردیخواهیم پرداخت.

مشخصات بعضی از عناصر اصلی GUI :

uicontrol) : Pushbutton) : این جزء گرافیکی کار یک دکمه فشاری را انجام میدهـد .

هنگامی که با ماوس روی آن کلیک شود، callback مربوطه را فعال می کند.

uicontrol) : Toggle button) : جزئی گرافیکی است که کار یـک کلیـد دو حالتـه راانجام میدهد. این کلید دو وضعیت یا “روشن”است یا “خاموش” و هر بار که بـا مـاوس روی آن کلیـکشود، تغییر وضعیت داده و callback مربوط به آن فعال می شود.

uicontrol) : Radio button) : نوعی از toggle button‌هاست که بـه صـورتدایره کوچکی است و هنگام “روشن” بودن نقطـه ای در مرکـز آن قـرار مـی  گیـرد. گروهـی ازradio button‌ها را میتوان برای پیادهسازی گزینههای مستقل استفاده کرد. هر کلیک ماوس روی این جـزءcallback آن را فعال می کند. 

ادامه مطلب....

مهندس احمدی بازدید : 126 یکشنبه 09 آبان 1395 نظرات (0)

   

GUI در متلب-۲

 
 

GUI در متلب-2

مشخصات بعضی از عناصر اصلی GUI :

uicontrol) : Pushbutton) : این جزء گرافیکی کار یک دکمه فشاری را انجام میدهـد .

هنگامی که با ماوس روی آن کلیک شود، callback مربوطه را فعال می کند.

uicontrol) : Toggle button) : جزئی گرافیکی است که کار یـک کلیـد دو حالتـه راانجام میدهد. این کلید دو وضعیت یا “روشن”است یا “خاموش” و هر بار که بـا مـاوس روی آن کلیـکشود، تغییر وضعیت داده و callback مربوط به آن فعال می شود.

uicontrol) : Radio button) : نوعی از toggle button‌هاست که بـه صـورتدایره کوچکی است و هنگام “روشن” بودن نقطـه ای در مرکـز آن قـرار مـی  گیـرد. گروهـی ازradio button‌ها را میتوان برای پیادهسازی گزینههای مستقل استفاده کرد. هر کلیک ماوس روی این جـزءcallback آن را فعال می کند.

check box : (uicontrol) : Check box نوعی از toggle button‌ها است که به شکل مربعی کوچک با علامت تیک (3) در درون آن به منزله “روشـن ” بـودن مـیباشـد . هـر کلیـکماوس روی آن، callback آن را فعال می کند.

edit box : (uicontrol) : Edit box متنی را نمـایش مـی دهـد و بـه کـاربر اجـازهمیدهد اطلاعات نشان داده شده در آن را تغییر دهد. Callback مربوط به آن با فشار دکمـهenter  فعال می شود.

uicontrol) : List box) : کنترلی گرافیکی است که یـک سـری از مـتن هـای رشـته ای

(text string) را نمایش می دهد کاربر می تواند با یک یا دو بار کلیک روی هر یک از این متن هـایرشته ای آنها را انتخاب کند. به هنگام انتخاب یک متن رشته ای callback آن فعال می شود.

uicontrol) : Popupmenu) : کنترلی  گرافیکی است که در پاسخ بـه کلیـک مـاوس یـکدسته از متنهای رشتهای را نمایشمیدهد. تا هنگامی که روی یک منویpopup  کلیک نـشده اسـت،تنها رشته انتخاب شده فعلی آن قابل مشاده است.

slider : (uicontrol) : Slider کنترل گرافیکی دیگری است که نقش آن تنظیم یکمقدار به طور منظم و پیوسته با کشیدن کنتـرل آن بـه وسـیله مـاوس اسـت. هـر تغییـر درslider  ،callback اش را فعال می کند.

uicontrol) : Frame) : یک قاب ایجاد میکند که در حقیقیت جعبـه مربعـی شـکل درونfigure میباشد. قابها برای گروه بندی مجموعهای از کنترلهای گرافیکی استفاده میشوند. قابها هرگزcallback ی را فعال نمی کنند.

ادامه مطلب.....

مهندس احمدی بازدید : 135 یکشنبه 09 آبان 1395 نظرات (0)

  

استفاده از SIMULINK

 
 

استفاده از simulink

برای باز کردن simulink ،در فضای کاری تلب تایپ نمابید:

simulink

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

595

بر روی قسمت چپ پنجره، شما چندین مجموعه کتابخانه بر اساس سیستم های مختلف  پیدا خواهید کرد،کلیک بر روی هر بلوک طراحی شده پنجره سمت راست  را نشان خواهد داد.

برای ایجاد یک مدل جدید، دکمه new  بر روی نوار ابزار مرورگر کتابخانه کلیک کنید. یک مدل بدون عنوان باز می شود

596

مدل  simulink یک نمودار بلوکی است.

عناصر مدل  با انتخاب عناصر مناسب از مرورگر کتابخانه و کشیدن آن ها به پنجره مدل اضافه شده اند.

متناوباً، شما می توانید عناصر مدل را کپی کنید و آن ها را به پنجرا مدل paste نمایید.

مثال ها

عناصر را از کتابخانه simulink  برای ساخت پروژه بکشید و رها کنید.

به منظور این مثال، 2 بلوک برای شبیه سازی استفاده خواهد شد – source(سیگنال) ,  sink(حوزه). ژنراتور سیگنال(source) سیگنال آنال.گ تولید می کند، که سپس به صورت گرافیکی   با آن حوزه تجسم خواهد شد.

598

ابتدا بلوک های مورد نیاز  از کتابخانه را به پنچره پروژه اضافه کنید. سپس، بلوک ها را به یکدیگر وصل کنید که می تواند توسط اتصالگرها از نقاط اتصال بر روی یک بلوک کد دیگر انجام شود.

اجازه دهید بلوک ‘ موج سینوسی’را به مدل بکشیم.

ادامه مطلب....

مهندس احمدی بازدید : 119 یکشنبه 09 آبان 1395 نظرات (0)

 

سیستمهای مختصات دهی تصاویر

 
 

سیستمهای مختصات دهی تصاویر

در متلب اغلب تصاویر به صورت یک آرای هی دو بعدی ذخیره میشوند که به آنها ماتریس میگوییم. هر عنصر از ماتریس متناظر با یک پیکسل از تصویر مربوطه است. برای نمایش برخی تصاویر مانند تصاویر رنگی، نیاز به آرایه سه بعدی داریم که در آن، اولین صفحه نمایشگر
شدت مولفه قرمز، دومین صفحه نمایشگر شدت مولفه سبز، و سومین صفحه نمایشگر شدت مولفه آبی می باشد
(به اصطلاح تصویرِ RGB هم گفته میشوند).

1- سیستم مختصات دهی پیکسلی
متداولترین روش برای مختصات دهی است. در این روش، تصویر به عنوان شبکه ای از عناصر گسسته در نظر گرفته میشود که مطابق شکل زیر، به ترتیبِ از بالا به پایین، و از چپ به راست چیده شده اند.

602

اولین مولفه r  (سطر) بوده و به سمت پایین افزایش می یابد، دومین مولفه c ستون) بوده و به سمت راست افزایش می یابد. مختصات پیکسلها اعداد صحیحی هستند که بین 1 تا ماکزیم تعداد سطرها/ستونها تغییر می کنند. بین مختصات سطر و ستونی پیکسلها و مختصات نقاط متناظر در ماتریس Iتصویر تناظر یک به یک وجود دارد. برای مثال عضوی از ماتریس I به مختصات ( 2,15) همان پیکسل واقع در سطر دوم و ستون  پانزدهم است.

2- مختصات مکانی

در این روش به جای اینکه پیکسل را به عنوان یک نقطه گسسته در نظر بگیریم، آن را به عنوان یک مربع در نظر میگیریم. بنابراین، در این روش مختصات ( 5.3,2.2 ) معنا دار خواهد بود حال آنکه در مختصات پیکسلی فاقد معنا است. در روش مختصات مکانی، نقاط مختلف تصویر در واقع مکانهایی در صفحه ی x‐y بوده و با همین اعداد (یعنی y و x) توصیف میشوند نه c و r. شکل زیر این مطلب را نشان می دهد. 

ادامه مطلب....

مهندس احمدی بازدید : 136 یکشنبه 09 آبان 1395 نظرات (0)

  

کار با دنباله های تصاویر

 
 

کار با دنباله های تصاویر

برخی تصاویر در حوزه زمان (مانند فریمهای ویدویی) یا مکان (مانند تصاویرMRI) به هم مرتبط هستند. این گونه تصاویر را دنباله های تصویری یا انباشته های تصویری می گویند. برای ذخیره وپردازش دنباله های تصویری باید یک آرایه سه بعدی یا چهار بعدی ایجاد کرد. برای ایجاد دنباله هایی از تصاویر سطح خاکستری و باینری نیاز به آرایه سه بعدی (m×n×p) و برای ایجاد دنباله هایی از تصاویر رنگی نیاز به آرایه چهار بعدی (m×n×3×p) داریم.

612

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

ادامه مطلب....

مهندس احمدی بازدید : 99 یکشنبه 09 آبان 1395 نظرات (0)

  

تغییر محدوده مختصات مکانی

 
 

تغییر محدوده مختصات مکانی
محدوده تغییرات مختصات مراکز پیکسلها در ویژگیهای YData و XData قرار دارد. اگرA تصویری دارای 100سطر و 200 ستون باشد، مقدار پیش فرض YData برابر [ 1,100 ] و مقدار پیش فرض XData برابر [1,200] است بنابراین، مختصات x نقاط این تصویر در سیستم مختصات دهی مکانی، در حالت پیش فرض در محدوده [ 0.5,200.5 ] و مختصات y نیز در محدوده [ 0.5,200.5 ]تغییر میکنند. برای تغییر محدوده مختصات در سیستم مختصات دهی مکانی میتوانید ویژگیهای YData و XData را در حین نمایش تصویر تغییر دهید. برای مثال:

A = magic(5);
x = [19.5 23.5];

y = [8.0 12.0];

image(A,’XData’,x,’YData’,y), axis image, colormap(jet(25))

نتیجه:

ادامه مطلب....

مهندس احمدی بازدید : 84 یکشنبه 09 آبان 1395 نظرات (0)

  

تبدیل بین انواع مختلف تصویری

 
 

تبدیل بین انواع مختلف تصویری

برای تبدیل نوع سطح خاکستری به نوع رنگی کافی است که تصویر را سه بار کپی کرده و در یکی از سه بعد تصویر رنگی مربوطه قرار دهیم. اگر I یک تصویر سطح خاکستری باشد و بخواهیم از روی آن تصویر رنگی RGB  بسازیم به طریق زیر میتوانیم عمل کنیم:

RGB = cat(3,I,I,I);

توابع مربوط به تبدیل انواع:

611

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

برای تبدیل نوع های 8uint و 16 uint به نوع double از دستور double استفاده کنید اما توجه داشته باشید که گاهی اوقات لازم است در ادامه اعداد را نرمالیزه و یا بایاس هم کنید. برای اینکه مطمئن شوید که کار نرمالیزه کردن و یا بایاس کردن به درستی انجام میشود میتوانید از توابع زیر برای تبدیلات مختلف خود استفاده کنید:

im2uint16, im2int16, im2uint8, im2single, im2double

برای مثال اگر تصویری از نوع double دارید (و بنابراین مقادیر عددی آن بین صفر تا 1 می باشد)، به کمک دستور زیر آن را به نوع 8 uint تبدیل کنید (بنابراین در تصویر خروجی، مقادیر بین صفر تا 255 می باشند):

RGB2 = im2uint8(RGB1);

ادامه مطلب....

مهندس احمدی بازدید : 253 یکشنبه 09 آبان 1395 نظرات (0)

  

انواع مختلف تصویر در متلب-۲

 
 

انواع مختلف تصویر در متلب

3- تصاویر سطح خاکستری
یک تصویر سطح خاکستری یک ماتریس دو بعدی است که عناصر آن معرف شدت روشنایی پیکسل مربوطه در محدوده ای مشخص می باشند.  به طور پیش فرض در اینجا از نماد I برای اشاره به تصاویر سطح خاکستری استفاده شده است.

608

نوع (یا کلاس) یک تصویر سطح خاکستری میتواند برابر int و یا 16 ،uint16 ،uint8 ،double ،single  باشد. متلب معمولاً برای نمایش تصاویر سطح خاکستری نیز از ماتریس رنگ (مشابه با تصاویر اندیس گذاری شده) استفاده می کند. اما برای ذخیره ی آنها معمولاً از ماتریس رنگ استفاده نمی کند. اگر نوع تصویر برابر double و یا single باشد، طبق ماتریس رنگ پیش فرض، مقدار صفر متناظر با سیاه کامل و مقدار 1 متناظر با رنگ سفید کامل است. برای تصاویری از نوع uint 8 و یا uint16 مقدار (intmin(class(I متناظر با رنگ سیاه کامل  و مقدار (intmax(class(I) متناظر با  رنگ سفید کامل است.

4- 4 تصاویر رنگی
یک تصویر رنگی، تصویری است که هر پیکسل آن با سه عدد مشخص می شود که هر عدد متناظر با شدت یکی از رنگهای قرمز، سبز، و آبی است. (در حقیقت، میدانیم که هر رنگ را میتوان با ترکیبی از این رنگهای اصلی به دست آورد). در متلب هر تصویر رنگی به صورت یک آرای هی m×n×3 (یعنی یک آرایه سه بعدی) ذخیره می شود. این آرایه، در حقیقت، شامل سه ماتریس رنگ است که هر ماتریس مشخص کننده ی شدت یکی از رنگها برای تمام پیکسلهای مختلف می باشد. در تصاویر رنگی، دیگر از ماتریس رنگ استفاده نمی شود.

609

هر تصویر رنگی میتواند از یکی از انواع double و یا ،single ،uint16 ،uint باشد.  در حالتsingle و double هر مولفه رنگ عددی بین صفر تا 1 است. بنابراین مولفه ی ( 0,0,0 ) به معنای سیاه کامل و مولفه ی (1,1,1) به معنای سفید کامل است. مولفه های رنگ هر پیکسل واقع در مختصات (x,y) در بعد سوم از آرایه ی سه بعدی متناظر با تصویر قرار داده میشوند. مثلاً مولفه های قرمز، سبز، و آبیِ پیکسل واقع در
RGB( و ( 4,15,3 RGB(4,15,2) ،RGB( در محلهای به ترتیب ( 4,15,1 RGB مختصات ( 4,15 ) از تصویر
قرار دارند.

مثال زیر یک نمونه از ترکیب رنگها را نشان میدهد:

RGB=reshape(ones(64,1)*reshape(jet(64),1,192),[64,64,3]);
R=RGB(:,:,1);
G=RGB(:,:,2);
B=RGB(:,:,3);
imshow(R)
figure, imshow(G)
figure, imshow(B)
figure, imshow(RGB)

نتیجه:

ادامه مطلب....

مهندس احمدی بازدید : 134 یکشنبه 09 آبان 1395 نظرات (0)

  

خواندن و نوشتن تصاویر

 
 

خواندن و نوشتن تصاویر

برای کسب اطلاعات در مورد یک فایل تصویری ذخیر شده در حافظه کامپیوتر از دستور استفاده imfinfo کنید. برای دیدن لیست قالبهای تصویری مورد پشتیبانی در متلب، در پنجره فرمان imformats را وارد کنید.

مثالی از خواندن یک فایل تصویری:

RGB = imread(‘football.jpg’);

برخی قالبهای تصویری مانند jpg برای هر پیکسل 8 بیت تخصیص می دهند. بنابراین، متلب این نوع تصاویر را به صورت نوع 8 uint نمایش می دهد. اما برخی قالبهای تصویری مانند  PNG و TIFF می توانند برای هرپیکسل 16 بیت تخصیص دهند، بنابراین دستور imread باعث تولید آرایه ای از نوع 16 uint می گردد. برای خواندن یک تصویر به صورت یک تصویر اندیس گذاری شده، متلب از دو متغیر یکی برای ماتریس رنگ و دیگری برای ماتریس اشاره گرها. دستور imread همواره اطلاعات ماتریس رنگ را در ماتریسی از نوع  double قرار میدهد گرچه ماتریس اشاره گرها خود از نوع 8 uint و یا 16 uint است.

مثالی از خواندن یک تصویر به صورت یک تصویر اندیس گذاری شده:

[X,map] = imread(‘trees.tif’);

 برخی قالبهای تصویری مانند tiff قادر به ذخیره بیش از یک تصویر در خود هستند. در اینگونه واقع، دستور imread به طور پیش فرض اولین تصویر (یا فریم) را می خواند مگر اینکه از قالب دستور العمل مناسب برای خواندن بقیه ی فریمها استفاده کنیم. در مثال زیر، 27 تصویر از یک فایل با قالب tiff خوانده شده و در یک آرایه چهار بعدی قرار داده می شوند. البته جلوتر م یتوانید از دستور imfinfo کمک بگیرید تا ببینید چند فریم در فایل ذخیره شده است.

mri = zeros([128 128 1 27],’uint8′); % preallocate 4‐D array
for frame=1:27
[mri(:,:,:,frame),map] = imread(‘mri.tif’,frame);
end

اگر میخواهید فایل بزرگی را بخوانید برای اینکه مشکل کمبود حافظه پیش نیاید، یک راه این است که از پردازش بلوکی استفاده کنید.
برا ذخیره داده های یک تصویر به صورت یک فایل تصویری روی حافظه کامپیوتر از دستور imwrite می توانید استفاده کنید. در مثال زیر ابتدا یک تصویر اندیس گذاری شده که در فایلی با قالب mat. ذخیره شده است خوانده شده و به فضای کاری متلب منتقل می شد. سپس این تصویر به صورت یک فایل تصویری با قالب bmp. در حافظه کامپیوتر ذخیره می شود.

>>load clown
>>whos
Name Size Bytes Class
X 200×320 512000 double array
caption 2×1 4 char array
map 81×3 1944 double array
Grand total is 64245 elements using 513948 bytes
>>imwrite(X,map,’clown.bmp’)

ادامه مطلب....

تعداد صفحات : 6

اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 791
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • آی پی امروز : 14
  • آی پی دیروز : 55
  • بازدید امروز : 21
  • باردید دیروز : 2,205
  • گوگل امروز : 1
  • گوگل دیروز : 12
  • بازدید هفته : 2,428
  • بازدید ماه : 3,503
  • بازدید سال : 26,242
  • بازدید کلی : 197,348