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

التعامل مع المصفوفات

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

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

 >>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

العمليات على المصفوفات

مدور المصفوفة

ولنفرض لدينا المصفوفة 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

محدد المصفوفة Determinant

 >> 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

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

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

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

Heart rate
Weight
Hours of exercise per week

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

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

الدرس انتهى


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

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

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

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

>>load ptc.dat

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

>>ptc

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

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

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

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

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

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

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

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

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