You are on page 1of 24

Lab: 1,2

Introduction

‫ ايمان عبد العظيم‬/‫م‬


‫مقدمه عن برنامج ‪MATLAB 7.0‬‬

‫)‪MATLAB(MATrix LABoratory‬‬
‫مختبـــر المصفوفه‬
‫يدخل الماتلب في الوقت الراهن في الكثير من الفروع العلمية‬
‫‪:‬والتطبيقية منها‬
‫معالجة الشارة ‪. signal processing 1-‬‬
‫الشبكات العصبية ‪.neural netwoks 2-‬‬
‫معالجة الصور ‪image processing 3-‬‬

‫م‪ /‬ايمان عبد العظيم‬


‫أجزاء برنامج ‪MATLAB 7.0‬‬

‫‪2‬‬
‫‪5‬‬

‫‪1‬‬

‫‪4‬‬
‫‪3‬‬

‫م‪ /‬ايمان عبد العظيم‬


‫نافذة التعليمات ‪:Command Window 1-‬‬
‫‪.‬النافذة الرئيسية للبرنامج وفيها يتم كتابة التعليمات بشكل مباشر‬
‫‪Is where the user types MATLAB commands and‬‬
‫‪expressions(>>) and where the outputs of those‬‬
‫‪commands are displayed.‬‬

‫مسار العمل ‪:Current Directory2-‬‬


‫يتمثل في المجلد الحالي الذي تعمل فيه‪ .‬المسار التلقائي الذي يوفره البرنامج هو المجلد ‪Work .‬‬
‫‪C:\MATLAB7\work‬‬
‫الموجود في مسار تنصيب البرنامج‪ .‬هذا المسار التلقائي يمكننا من استغلل أسهل للدوال التي يوفرها‬
‫البرنامج‬
‫ويحتوي كافة الملفات و المجلدات المرتبطة بالتطبيق الذي تم فتح أحد ملفاته الرئيسية )‪(m.‬‬
‫لتغير المسار يكفي اختيار الزر المقابل لخانة الكتابة أو كتابة المسار هناك مباشرة وتفعيل التغير عبر‬
‫النقر على‬
‫الزر "‪"Enter‬‬

‫يمكن تعديل ذلك المسار برمجيا ‪ -‬كيف؟ ‪.‬‬

‫م‪ /‬ايمان عبد العظيم‬


‫نافذة تسجيل الوامر ‪:Command History3-‬‬
‫في هذه النافذة يتم تسجيل وقتيا و بترتيب كافة التعليمات السابقة التي تم تنفيذها في نافذة التعليمات مما‬
‫‪.‬ييسر إعادة تفعيلها‪/‬ترجمتها فقط بالضغط على أزرار التجاهات في لوحة المفاتيح‬
‫‪.‬حيث يتم تسجيل كل ما يقوم به المستخدم على برنامج الماتلب في هذه النافذه‬

‫‪Contains a record of the commands a used has entered in‬‬


‫‪the command window, including both current and previous‬‬
‫‪MATLAB sessions. Previously entered MATLAB commands‬‬
‫‪can be selected and re-executed from the Command History‬‬
‫‪Window by right-clicking on a command or sequence of‬‬
‫‪commands.‬‬
‫مجال العمل ‪: WorkSpace4-‬‬
‫في هذا المجال يتم تسجيل أسماء المتغيرات التي تم تعريفها والقيمة المسندة لكل متغير‪ .‬هذا المجال يجنبنا‬
‫إعادة إسناد نفس القيمة مجددا للمتغير و استعماله مباشرة في المعادلت أو غير ذلك من الستعمالت‪ .‬ما‬
‫يغلق البرنامج يتم مباشرة حذف محتويات مجال العمل لذلك ينبغي تسجيله عند الحاجة‪ .‬من الممكن أيضا‬
‫إفراغ هذا المجال برمجيا كيف؟‬

‫المساعدة ‪:help 5-‬‬


‫للحصول على مساعدة‬

‫الشكال ‪Figures 6-‬‬


‫م‪ /‬ايمان عبد العظيم‬ ‫وتظهر عند عرض شكل ما على الشاشة‬
Some important definitions:
An image can be defined as 2 dimensional
function F(x,y) where x and y are the
coordinates and the amplitude of F at any
pair of coordinates (x,y) is called the
intensity or gray level of the image at this
point.

A digital image is composed of number of


elements each has a location and value.
These elements are called pixels(image
element)(picture element)
‫ ايمان عبد العظيم‬/‫م‬
‫المتغيرات‬
‫‪:‬شروط على اسم المتغير‬
‫‪.‬يبدأ بحرف ‪1-‬‬
‫‪ ( _ ).‬يمكن ان يتالف من حروف ابجدية وارقام ورمز ‪2-‬‬
‫‪ .‬اقصى طول لسم المتغير ‪3- 31‬‬

‫‪.‬حساسة لحالة الحرف ‪-‬‬


‫‪pi‬‬ ‫)متغير ثابت( ‪= 3.14159265‬‬

‫م‪ /‬ايمان عبد العظيم‬


‫•‬ ‫] ‪ a=[1 2 3;4 5 6‬مدورالمصفوفة ‪:‬‬
‫]‪a’=[1 4;2 5;3 6‬‬
‫انشاء سلسلة من عناصر المصفوفة •‬
‫‪b=[1:2:10] or b=1:2:10‬‬
‫]‪d=[1:3 ; 6:8‬‬
‫•‬ ‫اذا كانت المصفوفة ذات حجم ‪ nxm‬فأن تطبيق الوامر ‪sort , max ,min, sum‬‬
‫‪.‬سيكون على العمدة‬
‫‪.‬‬
‫اما اذا كانت المصفوفة ذات حجم ‪ mx1 or 1Xn‬فان تطبيق الوامر يكون على الصف او العمود •‬

‫•‬ ‫>>‬ ‫]‪a=[1 2 3;4 5 6‬‬


‫•‬ ‫>>‬ ‫;]‪sum(a)=[5 7 9] ; >> max(a)=[4 5 6] ; >> min(a)=[1 2 3‬‬
‫•‬ ‫>>‬ ‫; ]‪b=[8 9 10‬‬
‫•‬ ‫>>‬ ‫; ]‪sum(b)=[27]; >> max(b)=[10‬‬ ‫;]‪>> min(b)=[8‬‬
‫•‬ ‫>>‬ ‫;]‪sum(b’)=[27]; >> max(b’)=[10] ; >> min(b’)=[8‬‬
‫معنى في نهاية السطر أم ل؟ ; هل لوجود‬

‫م‪ /‬ايمان عبد العظيم‬


‫;]‪• >> a=[4 5 6;1 10 3‬‬
‫]‪• >> sort(a)=[1 5 3 ; 4 10 6‬‬

‫•‬ ‫>>‬ ‫; ]‪b=[9 7 10‬‬


‫•‬ ‫>>‬ ‫]‪sort(b)=[7 9 10]; sort(b’)=[7;9;10‬‬
‫•‬ ‫>>‬ ‫‪b(3)=10‬‬ ‫‪or b(1,3)=10‬‬
‫•‬ ‫>>‬ ‫] [=)‪b(2‬‬

‫•‬ ‫>>‬ ‫]‪c=[9 5 7;8 9 12‬‬


‫•‬ ‫>>‬ ‫‪c(1,2)= 5‬‬ ‫إظهار العنصر في صف الول في عمود الثاني ‪‬‬
‫•‬ ‫>>‬ ‫] [=)‪c(1,:‬‬ ‫يحذف الصف الول ‪‬‬
‫•‬ ‫>>‬ ‫‪c(1,:)=0‬‬ ‫صفر يجعل عناصر الصف الول‪‬‬
‫•‬ ‫>>‬ ‫] [=)‪c(:,1‬‬ ‫يحذف العمود الول ‪‬‬

‫م‪ /‬ايمان عبد العظيم‬


‫الصيغة وفق برنامج ‪MATLAB‬‬ ‫الصيغة الجبرية‬ ‫العملية?‬

‫‪a+b‬‬ ‫‪a+b‬‬ ‫الجمع )تساوي الحجم(‬


‫‪a-b‬‬ ‫‪a-b‬‬ ‫الطرح )تساوي الحجم(‬
‫‪a*b‬‬ ‫‪axb‬‬ ‫الضرب )عدد أعمده الولى = عدد‬
‫صفوف الثانية(‬
‫‪a/b‬‬ ‫‪a/b‬‬ ‫*القسمة اليمنى للمصفوفة و تكافئ‬
‫‪)a*inv(b‬‬
‫‪a\b‬‬ ‫‪b\a‬‬ ‫*القسمة اليسرى للمصفوفة و تكافئ‬
‫‪inv(a)*b‬‬
‫‪a^2‬‬ ‫‪a2‬‬ ‫الس)مصفوفة مربعه او عنصر وحيد(‬

‫)‪)mod(4,2‬‬ ‫‪mod(a,b‬‬ ‫‪4%2‬‬ ‫باقي قسمة‬


‫‪a.*b‬‬ ‫يجب ان تكون المصفوفات متساويه بالحجم‬ ‫ضرب عنصر بالعنصر المقابل له‬
‫فى المصفوفة (تساوي‬
‫الحجم(‬
‫‪a./b‬‬ ‫‪a.\b‬‬ ‫يجب ان تكون المصفوفات متساويه بالحجم‬ ‫*قسمة عنصر على العنصر المقابل له‬
‫فى المصفوفة (تساوي الحجم(‬
‫‪a.^b‬‬ ‫يجب ان تكون المصفوفات متساويه بالحجم‬ ‫الس فى المصفوفة (تساوي الحجم(‬

‫]‪a=[9 5 7;8 9 12;1 2 3‬‬ ‫‪TRY‬‬


‫]‪b=[1 2 3;4 5 6;7 8 9‬‬ ‫?‬ ‫م‪ /‬ايمان عبد العظيم‬
( written in small case) ‫بعض الوامر‬
• Who List current variables. ‫إظهار أسماء المتغيرات المسجلة في مجال العمل‬

• whos List variables in the workspace ‫ عدد مكوناتها خاصة للمصفوفات و‬,‫إظهار أسماء المتغيرات المسجلة في مجال العمل حجمها بالبايت‬
‫نوعها‬

• what The command WHAT, by itself, lists the MATLAB specific files found
in the current working directory.

• clc ‫تنظيف نافذة التعليمات من الوامر السابقة ونتائجها‬


• Clear ‫ولكن ل تمحى من شاشة الوامر‬Clear variables and functions from
memory.
• Home ‫و بدون إلغاء المتغيرات الموجودة في الذاكرة‬Send the cursor home.
• size(variable)
• sort(variable) Sort in ascending or descending order
-default is in ascending order

‫ ايمان عبد العظيم‬/‫م‬


‫‪:‬تغير مجلد العمل‪ ,‬ويمكن إستعمالها بالكيفية التالية ‪cd:‬‬

‫‪cd C:\My file‬‬

‫إغلق البرنامج ‪quit/exit:‬‬

‫إفراغ كافة البيانات المسجلة تلقائيا في والتعليمات السابقة التي تم كتابتها في نافذة ‪clear all:‬‬
‫التعليمات‬
‫مثل ‪Clear‬‬
‫إظهار الملفات المتواجدة في مسار العمل‪ .‬ويمكن إستخدامها لختيار إظهار ملفات ذات إمتداد معين بالكيفية ‪ls:‬‬
‫‪ :‬التالية‬
‫‪ls *.m‬‬
‫كباقي لغات البرمجة‪ ,‬يحتفظ‪Matlab‬‬
‫بمجموعة من الكلمات التي يمنع إستعمالها في غير محلها كتسمية المتغيرات‪ .‬عند كتابة إحدى هذه الكلمات‬
‫يصبح لونها أزرق‬

‫لضافة تعليقات لجعل الكود أكثر وضوحا ينبغي إستعمال رمز النسبة المئوية "‪ "%‬في بداية كل سطر من‬
‫‪.‬أسطر التعليقات‪ .‬هذا الحل مفيد أيضا عند الرغبة في إخراج جزء من الكود من عملية الترجمة‬
‫ويكفي أن تقوم بتظليل السطر المعنية‪ ,‬ثم إختر عند النقر بيمين الفأرة ‪Comment‬‬

‫م‪ /‬ايمان عبد العظيم‬


Try the following:

a)Vector indexing:

V=[1 3 5 7 9]
W=V’
V(1:3)
V(3:end)
V(:) use of a single colon as an index into a matrix
selects the elements of the array(on a column-by-column
basis) and arranges them in the form of a column vector.
V(1:end)
V(1:2:end)
V(end:-2:1)
V([1 4 5])  pick the first, fourth, and fifth elements of V

‫ ايمان عبد العظيم‬/‫م‬


b) Matrix indexing

A=[1 2 3; 4 5 6; 7 8 9]
sum(diag(A)).
A(2,3)
C=A(:,3)
R=A(2, :)
T=A(1:2, 1:3) extracts the top two rows

B=A;
B(:, 3)=0
A(end, end)
A(end, end-2)
A(2:end, end:-2:1)
E=A([1 3], [2 3]) -- the notation A([a b],[c d]) picks out the elements in A
with coordinates(row a, column c), (row a, column d) ; (row b, column c)
and (row b, column d).
V=T(:)use of a single colon as an index into a matrix selects the
elements of the array(on a column-by-column basis) and arranges them
in the form of a column vector.
S=sum(A(:))
sum(sum(A))
Note that: use of a single colon ‫العظيم‬
converts
‫ ايمان عبد‬/‫ م‬the matrix into a vector.
Some Important Standard Arrays:

•zeros(M,N) generates an M×N matrix of 0s of class double.

•ones(M,N) generates an M×N matrix of 1s of class double.


•eye(M,N) or eye(n). Identity matrix

•Magic(M) ( ‫ )مربعه فقط‬generates an M×M ”magic square.” this is a square


array in which the sum along any row, column, or main diagonal, is the
same. returns an M-by-M matrix constructed from the integers 1 through
M^2 with equal row and column sums. The order n must be a scalar
greater than or equal to 3
‫تدريب‬
A=5*ones(3,3)
magic(3)

‫ ايمان عبد العظيم‬/‫م‬


Reading Images
• Images are read using function imread.

• Syntax:
var=imread(‘filename’)

• Example 1: (e1.m)
f=imread(‘city.jpg’);

‫ ايمان عبد العظيم‬/‫م‬


Displaying image
• Images are displayed using function
imshow.
• Syntax:
imshow(F,G)
where F is an image and G is the
number of intensity levels used to
display it. If G is omitted it default to
256 levels.

‫ ايمان عبد العظيم‬/‫م‬


pixval
• Function pixval is used to display
intensity values of individual pixels.

• Clicking the x button on the cursor


window turns it off

‫ ايمان عبد العظيم‬/‫م‬


Imfinfo
• This function is used to obtain image file details.
• Syntax: imfinfo filename
• E.g.
imfinfo city.jpg
Example 2:
>> f=imread('flower.jpg');
>> whos f
Name Size Bytes Class

f 100x100 10000 uint8 array

Grand total is 10000 elements using 10000 bytes

>> imshow(f)

‫ ايمان عبد العظيم‬/‫م‬


Writing images

• Images are written to disk using


imwrite function.
• Syntax: imwrite(imgvar,’filename’)
• Ex: imwrite(f,’city.jpg’)
• Note: a file name must include a
recognized file format extension.
‫ ايمان عبد العظيم‬/‫م‬
Image Formats Supported
by Matlab
• TIFF ≡ Tagged Image File Format
• JPEG ≡ Joint Photographic Experts Group
• GIF ≡ Graphics Interchange Format
• BMP ≡ windows Bitmap
• PNG ≡ Portable Network Graphics
• XWD ≡ X Windows Dump
Example 3:

f=imread('flower.jpg')

imwrite(f,'city.jpg')

(City.jpg ‫( ( مكان الصورة‬flower ‫يتم استبدال ) كتابة الصورة‬

‫ ايمان عبد العظيم‬/‫م‬


Try the following:

Use intensity image of class uint8 for this practice:

If f is an image

f=imread(‘flower.jpg’);
Fp=f(end:-1:1,:);  flip image vertically
imshow(Fp)

Fc=f(50:90,50:90);
imshow(Fc)  ‫ما التأثير على الصورة ؟‬

Fs=f(1:2:end, 1:2:end);
imshow(Fs)  ‫ما التأثير على الصورة ؟‬

‫ ايمان عبد العظيم‬/‫م‬


‫نهاية المحاضرة‬

‫سبحانك اللهم وبحمدك‬


‫أشهد أن ل إله إل أنت‬
‫أستغفرك وأتوب إليك‬

You might also like