طرق التعامل مع المصفوفات


#1

[size=5][color=red]التعامل مع المصفوفات

طرق عمل المصفوفات :[/color][/size]

من خلال اربعة دوال لتوليد المصفوفات مباشرة

 >>zeros(m,n)

لعمل مصفوفة كل عناصرها أصفار

>>ones(m,n)

لعمل مصفوقة الوحدة

 >>rand(m,n)

لعمل مصفوفة بارقام عشوائية من صفر الى واحد

 >>randn(m,n)

لعمل مصفوفة بارقام عشوائية من سالب واحد الى موجب واحد

حيث

m هى عدد الصفوف و n هى عدد الاعمدة

من خلال تحميل ملف بيانات :

يمكن عمل مصفوفة عن طريق تحميل ملف بيانات .

dat) )

يمكنك عمل ملف امتداته dat ويحتوى على ارقام مرتبة بانتظام وليكن اسمه ptc.dat

ويكون أمر التحميل كالاتى

رمز:

 >>load ptc.dat

ويجب ان يكون هذا الملف موجود داخل current directory او يمكنك ادراج مسار المجلد الذى يحتوى ملف البيانات عن طريق

اختيار قائمة file

ثم اختيار set path

وبعد قم باختيار

add folder واختار مجلد الملف

أو من خلال M-files

وهذه الملفات يتم فيها كتابة كود كالذى يتم كتابته فى سطر أوامر الماتلاب

ويكمننا عمل M-file يحتوى على مجموعة أرقام لعمل مصفوقة

وبعد ذلك قم بتخزين هذا الملف باسم ptc.m

وفى سطر الماتلاب قم بكتابة الاتى

 >>ptc

وسوف يقوم الماتلاب باستعداء المصفوفة

Concatenation

وهو عمل مصفوفة كبيرة من مجموعة متسلسلة من المصفوفات الصغيرة

مثلا يمكن عمل الاتى

 >> B = [A A+32; A+48 A+16]

وتكون نتيجة تنفيذ هذا الامر

B =16 3 2 13 48 35 34 455 10 11 8 37 42 43 409 6 7 12 41 38 39 444 15 14 1 36 47 46 3364 51 50 61 32 19 18 2953 58 59 56 21 26 27 2457 54 55 60 25 22 23 2852 63 62 49 20 31 30 17

حذف صفوف واعمدة

مثلا سنقوم بوضع قيمة المصفوفة A فى X

 >>X=A

ولحذف العمود الثانى

 >>X(:,2)=[]

ونجد قيمة X كالاتى

 >>XX =16 2 135 11 89 7 124 14 1

ويجب ملاحظة عند حذف عنصر من المصفوفة مثلا :

 >> X(1,2) = []

يعطى البرنامج رسالة خطا

??? Indexed empty matrix assignment is not allowed.

وذلك لان ناتج تنفيذ هذه العملية لا يكون مصفوفة ولكن يمكن حذف سلسلة من العناصر مثلا استخدم الامر الاتى

 X(2:2:10) = [ ]

ومعناه ان يقوم البرنامج بحذف العناصر بداية من العنصر رقم

2 الى العنصر رقم 10 بخطوة 2 وتكون النتيجة

 X =16 9 2 7 13 12 1

__________________


#2

[color=red]العمليات على المصفوفات

مدور المصفوفة [/color]

ولنفرض لدينا المصفوفة

A

رمز:

 A =16 3 2 135 10 11 89 6 7 124 15 14 1

فيكون مدورها كما يلى

رمز:

>> A’ans =16 5 9 43 10 6 152 11 7 1413 8 12 1

وكما معروف لدينا انه عند اضافة أو ضرب مصفوفة على مدور ها فان الناتج يكون مصفوفة متماثلة

رمز:

>> A+A’ans =32 8 11 178 20 17 2311 17 14 2617 23 26 2

رمز:

>> (A)*A’ans =438 236 332 150236 310 278 332332 278 310 236150 332 236 438

[color=red]محدد المصفوفة

Determinant[/color]

رمز:

 >> d = det(A)d =0

وهنا محدد المصفوفة يساوى صفر لانها مصفوفة احادية

Singular

ولتبسيط المصفوفة

رمز:

>> R = rref(A)R =1 0 0 10 1 0 -30 0 1 30 0 0 0

نلاحظ الصف الاخير يساوى صفر لانها مصفوفة احادية وتساوى صفر

معكوس المصفوفة

رمز:

 >> X = inv(A)

رمز:

Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 4.383047e-018.X =1.0e+015 *0.2796 0.8388 -0.8388 -0.2796-0.8388 -2.5164 2.5164 0.83880.8388 2.5164 -2.5164 -0.8388-0.2796 -0.8388 0.8388 0.2796

وهنا نلاحظ ان المصفوفة احادية ولذلك لايجود معكوس لها

Eigen values

For matrix A

رمز:

>> AA =16 3 2 135 10 11 89 6 7 124 15 14 1

رمز:

>> e = eig(A)e =34.00008.0000-0.0000-8.0000.

وجود قيمة eigenvalue يساوى صفر يوضح لنا وجود ال singularity

Arrays

وهى تعبر عن مجموعة من الارقام فى صورة مصفوفة والمصفوفات عموما تعتبر arrays فى بعدين والعمليات الحسابية فى ال array تتم على كل عنصر على حده وهذا متفق مع المصفوفات فى حالتى الجمع والطرح اما فى حالة الضرب والقسمة فان الامر مختلف .

والماتلاب يستخدم النقطة dot او العلامة العشرية decimal point, للتعبير عن العمليات التى تتم على ال arrays

رمز:

 >> A 

رمز:

 A =16 3 2 135 10 11 89 6 7 124 15 14 1

رمز:

 >> A.*A

رمز:

ans =256 9 4 16925 100 121 6481 36 49 14416 225 196 1

ومن اهم مميزات ال arrays هى بناء الجداول مثلا

رمز:

 >>s=(0:9)'

رمز:

 s =0123456789

ويمكننا الان عمل جدول يحتوى على هذه العناصر و مربعتها و مكعبتها

رمز:

>>deep=[s s.^2 s.^3]deep =0 0 01 1 12 4 83 9 274 16 645 25 1256 36 2167 49 3438 64 5129 81 729

__________________

__________________


#3

[color=red][size=5]

البيانات ذات المتغيرات المتعدده

Multivariate Data


[/size][/color]

[color=#002188]وتستخدم فى عمليات التحليل الاحصائى للبيانات وتمثل الاعمده قيمة متغير واحد و تمثل الصفوف قيمة الملاحظات لنفس المتغير مثلا :

لدينا ثلاث متغيرات وهما

Heart rate

Weight

Hours of exercise per week

ويوجد خمس نتائج او ملاحظات لكل متغير ويتم وضعهم كالاتى

[/color]

D = [ 72 134 3.281 201 3.569 156 7.182 148 2.475 170 1.2 ]

ويمكننا الان حساب قيمة المتوسط الحسابى و الانحراف المعيارى لكل متغير

>> mean(D)ans =75.8000 161.8000 3.4800

 >> std(D)ans =5.6303 25.4990 2.2107

Logical Subscripting

نفرض لدينا مصفوفة عادية x ومصفوفة L نفس الحجم ولكن تتكون من بعض العمليات المنطقية مثلا:

x = [2.1 1.7 1.6 1.5 NaN 1.9 1.8 1.5 5.1 1.8 1.4 2.2 1.6 1.8]

ووجود nan هنا يوضح ان هناك عنصر غير موجود مثلا عدم وجود استجابة فى النظام فى هذا المكان

>> L=isfinite(x)L =1 1 1 1 0 1 1 1 1 1 1 1 1 1

وهذا الامر منطقى اى يعطى صفر او واحد ويعطى صفر فى حالة وجود العنصر اى يكون

finite numerical values اما اذا كان غير ذلك فان الناتج يكون صفر فى حالة nan او inf ويمكن وضع علامة ~ لعكس الامر والتى تعبر عن notمثلا :

>> ~isfinite(x) ans = 0 0 0 0 1 0 0 0 0 0 0 0 0 0

والهدف من هذا هو حذف nan فنقوم بتنفيذ الاتى

>> x=x(L)x =رمز:Columns 1 through 11 2.1000 1.7000 1.6000 1.5000 1.9000 1.8000 1.5000 5.1000 1.8000 1.4000 2.2000Columns 12 through 13 1.6000 1.8000

نلاحظ هنا ان العنصر 5.1 بعيد جدا عن باقى العناصر فاذا اردنا حذفه نقوم بالاتى

 >>great=x<5

 great =1 1 1 1 1 1 1 0 1 1 1 1 1

نلاحظ مكان العنصر اصبح صفر

ونطبق الانLogical Subscripting

 >>x=x(great)

x =Columns 1 through 11 2.1000 1.7000 1.6000 1.5000 1.9000 1.8000 1.5000 1.8000 1.4000 2.2000 1.6000Column 12 1.8000

ويجب ملاحظة ان يكون ما بين القوسين متغيرات منطقية

The find Function

وهو الامر الذى يحدد العناصر الموجودة فى ال array والتى تحقق شرط منطقى موجود بين قوسين الامر ولتطيبق هذا على المثال السابق فلدينا المصفوفة x كالاتى

x =Columns 1 through 11 2.1000 1.7000 1.6000 1.5000 1.9000 1.8000 1.5000 5.1000 1.8000 1.4000 2.2000Columns 12 through 13 1.6000 1.8000

فاذا اردنا ايجاد العناصر التى اكبر من 2 نستخدم الاتى

 >>find(x>2)

 ans =1 9 12

وهذا يعبر عن رقم العنصر داخل ال array واذا اردنا ايجاد القيم الفعلية لهذه العناصر

 >> x(ans)ans =2.1000 5.1000 2.2000

الدرس انتهى

__________________


(alrashed71) #4

جزاك الله خيراً


(shaima) #5

جزاءك الله الف خير


(hopakady) #6

بجد جزاك الله كل خير


(ENG.MRMR) #7

[CENTER]من خلال تحميل ملف بيانات :
يمكن عمل مصفوفة عن طريق تحميل ملف بيانات .
dat) )
يمكنك عمل ملف امتداته dat ويحتوى على ارقام مرتبة بانتظام وليكن اسمه ptc.dat
ويكون أمر التحميل كالاتى
رمز:
رمز:

>>load ptc.dat

ويجب ان يكون هذا الملف موجود داخل current directory او يمكنك ادراج مسار المجلد الذى يحتوى ملف البيانات عن طريق
اختيار قائمة file
ثم اختيار set path
وبعد قم باختيار
add folder واختار مجلد الملف
أو من خلال M-files
وهذه الملفات يتم فيها كتابة كود كالذى يتم كتابته فى سطر أوامر الماتلاب
ويكمننا عمل M-file يحتوى على مجموعة أرقام لعمل مصفوقة
وبعد ذلك قم بتخزين هذا الملف باسم ptc.m
وفى سطر الماتلاب قم بكتابة الاتى
رمز:

>>ptc

[/center]
معلش ممكن بعد اذنك توضح الجزء ده شويه لأني لم أستطع تطبيقه وبجد شكرا على مجهودك الرائع والي أنا استفدت منه كتييييييييييييييييييييييييييييييييييييير


(المهندس المتالق) #8

شكرا لك اخي المهندس المحترم


(قصايد) #9

مشكورررررررر


(قصايد) #10

جزاك الله ألف خير على هذا الشرح الوافي


(khalidsoft) #11

السلام عليكم ارجو المساعدة في كيفية تحويل الصورة الي مصفوفة


(scorpion-king-2050) #12

والله مشكور على هذا المجهود العظيم


(MOBILE3008) #13

باااااااااااااااارك الله فيك


(system) #14

جزاك الله خيرا


(المهندس سعود) #15

الله يجزيك الخير على هالجهد الرائع