تابع الدوال والعمليات الرياضية الخاصة بالمتجهات والمصفوفات في برنامج MATLAB
إيجاد حاصل ضرب قيم عناصر المتجه / المصفوفة : Product of Vector/Matrix elements
تستخدم الدالة prod(A) (و هي إختصار لكلمة product ) في ضرب قيم عناصر المتجه A وفي حالة أن A يمصل مصفوفة فيتم ضرب عناصر كل عمود من أعمدة هذه المصفوفة كل علي حدة بحيث يكون ناتج هذه الدالة متجه صفي يمكننا إيجاد حاصل ضرب عناصره بإستخدام نفس الدالة Prod لينتج حاصل ضرب جميع عناصر المصفوفة .
وتستخدم الدالة prod علي الصور العامة التالية :
prod (A)
prod (A, DIM)
حيث أن :
DIM : تأخذ القيمتين التاليتين :
1- لإيجاد حاصل ضرب عناصر أعمدة المصفوفة A وهو الوضع الإفتراضي .
2- لإيجاد حاصل ضرب عناصر صفوف المصفوفة A بحيث يكون ناتج هذه الدالة متجه عمودي يمكننا إيجاد حاصل ضرب عناصره بإستخدام نفس الدالة لينتج حاصل جمع جميع عناصر المصفوفة .
إيجاد المتوسط الحسابي لعناصر المصفوفة : Mean of Vector / Matrix elements
تستخدم الدالة mean(A) في إيجاد المتوسط الحسابي لقيم عناصر المتجه A وفي حالة أن A يمثل مصفوفة فيتم إيجاد المتوسط الحسابي لعناصر كل عمود من أعمدة هذه المصفوفة كل علي حدة بحيث يكون ناتج هذه الدالة متجه صفي يمكننا إيجاد المتوسط الحسابي لعناصره بإستخدام نفس الدالة mean لينتج المتوسط الحسابي لجميع عناصر المصفوفة كما سنوضح في المثال التالي :
وتستخدم الدالة mean علي الصور العامة التالية :
mean (A)
mean (A, DIM)
حيث أن :
DIM : تأخذ القيمتين التاليتين :
1- لإيجاد المتوسط الحسابي لعناصر أعمدة المصفوفة A وهو الوضع الإفتراضي .
2- لإيجاد المتوسط الحسابي لعناصر صفوف المصفوفة A بحيث يكون ناتج هذه الدالة متجه عمودي يمكننا إيجاد المتوسط الحسابي لعناصره بإستخدام نفس الدالة mean لينتج المتوسط الحسابي لجميع عناصر المصفوفة .
>> % Defining A as a Row Vector
>> A=[1,2,3,4,5] ;
>> % Mean of vector elements
>> M=mean (A)
M =
3
إيجاد العنصر الأكبر في المتجه / المصفوفة : Getting Maximum Vector / Matrix element value
تستخدم الدالة max(A) (وهي إختصار لكلمة Maximum أي الأكبر ) في إيجاد أكبر قيم عناصر المتجه A يمثل مصفوفة فيتم إيجاد العنصر الأكبر لعناصر كل عمود من أعمدة المصفوفة كل علي حدة بحيث يكون ناتج هذه الدالة متجه صفي ( به الرقم الأكبر من كل عمود ) ويمكننا إيجاد العنصر الأكبر لعناصره بإستخدام الأمر max(max(A)) لينتج العنصر الأكبر لجميع عناصر المصفوفة .
وتستخدم الدالة max علي الصورة العامة التالية
m=max (A)
m=max (A, [ ] , DIM)
حيث أن :
DIM : تأخذ القيمتين التاليتين :
1- لإيجاد أقصي قيمة في عناصر أعمدة المصفوفة A و هو الوضع الإفتراضي .
2- لإيجاد أقصي قيمة في عناصر صفوف المصفوفة A بحيث يكون ناتج هذه الدالة متجه عمودي (به الرقم الأكبر من كل صف ) يمكننا إيجاد العنصر الأكبر لعناصره بإستخدام نفس الدالة max لينتج العنصر الأكبر لجميع عناصر المصفوفة .
ولزيد من الإيضاح لأوجه الإختلاف بين الثلاث صور السابقة لاستخدام الدالة max تابع المثال التالي :
- قم بتعريف المصفوفة A الغير منتظمة (أي أن عدد صفوفها لا يساوي عدد أعمدتها ) كما يلي :
>> % Defining a Square Matrix [A]
>> A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
- قم بتحرير الأمر m1 = max(A,[],1) ليقوم البرنامج بإيجاد العنصر الأكبر لعناصر كل عمود من أعمدة المصفوفة كل علي حدة ويقوم بتخزينها في المتجه الصفي m1 كما يلي :
>> % Getting maximum value of columns elements
>> m1=max(A, [ ] , 1)
m1 =
7 8 9
- قم بتحرير الأمر m2 = max(A,[],2) ليقوم البرنامج بإيجاد العنصر الأكبر لعناصر كل صف من صفوف المصفوفة كل علي حدة ويقوم بتخزينها في المتجه الصفي m2 كما يلي :
>> % Getting maximum value of rows elements
>> m2=max(A, [ ] , 2)
m2 =
3
6
9
- ويمكننا إيجاد قيمة العنصر الأكبر لجميع عناصر المصفوفة A في خطوة واحدة بتحرير إحدي الأمرين التاليين :
الأمر الأول :
>> m=max(max(A))
m =
9
الأمر الثاني :
>> m=max(A(:))
m =
9
وكما نري أن الأمران قاما بإرجاع أقصي قيمة لجميع عناصر المصفوفة A وهي القيمة تسعة .
إيجاد العنصر الأصغر في المتجه/المصفوفة : Getting Minimum Vector / Matrix element value
تستخدم الدالة min(A) ( وهي إختصار لكلمة Minimum أي الأقل ) في إيجاد أقل عناصر المتجه A وفي حالة أن A يمثل مصفوفة فيتم إيجاد العنصر الأصغر ( الأدني) لعناصر كل عمود من أعمدة المصفوفة كل علي حدة بحيث يكون ناتج هذه الدالة متجه صفي ( به الرقم الأصغر من كل عمود ) يمكننا إيجاد العنصر الأصغر لعناصره بإستخدام نفس الدالة min(min(A)) لينتج العنصر الأصغر لجميع عناصر المصفوفة كما سنوضح في المثال التالي :
وتستخدم الدالة min علي الصورة العامة التالية
n=min (A)
n=min (A, [ ] , DIM)
حيث أن :
DIM : تأخذ القيمتين التاليتين :
1- لإيجاد أقل قيمة في عناصر أعمدة المصفوفة A وهو الوضع الإفتراضي .
2- لإيجاد أقل (أدني) قيمةفي عناصر صفوف المصفوفة A بحيث يكون ناتج هذه الدالة متجه عمودي (به الرقم الأصغر من كل صف ) يمكننا إيجاد العنصر الأصغر لعناصره بإستخدام نفس الدالة min لينتج العنصر الأصغر لجميع عناصر المصفوفة .
إستدعاء عنصر معين من عناصر المتجه :
يمكننا تحديد قيمة عنصر معين من عناصر المتجه الصفي / العمودي ويكون ذلك علي الصورة التالي :
Vector_Name ( Element_ind)
حيث أن :
Element_ind : يمثل ترتيب العنصر المراد إستدعاء من بين عناصر المتجه وهو ما نطلق عليه دليل العنصر element index .
فمثلا من خلال المثال التالي يمكننا إستدعاء العنصر الخامس من عناصر المتجه الصفي A كما يلي :
>> % Defining A as a row vector
>> A=[1,2,3,4,5,6,7,8,9,10];
>> % Calling the fifth element of A
>> A(5)
ans =
5
كما يمكننا الأمر A(end) من إستدعاء العنصر الأخير للمتجه كما يلي :
>> A (end)
ans =
10
بينما يمكننا الأمر A(end-1) من إستدعاء العنصر قبل الأخير للمتجه .
مهارة خاصة :
يمكنك إستدعاء جميع عناصر المتجه من خلال الأمر التالي :
>> A ( : ) )
حيث تستخدم العلامة Colon( : ) بمفردها ( دون أرقام قبلها أو بعدها ) لإستدعاء جميع قيم عناصر المتجه .
إستدعاء أكثر من عنصر من عناصر المتجه :
يمكننا تحديد قيم عناصر محددة من متجه ويكون ذلك علي الصورة العامة التالية :
Vector_Name (first_value : step : last_value)
حيث أن :
first_value : يمثل ترتيب العنصر الذي ينبدأ بإستدعائه و last_value يمثل ترتيب أخر عنصر سننتهي عنده و step هي مقدار الخطوة (بالزيادة أو النقصان )بين كل عنصر والعنصر الذي يليه .
فمثلا يمكننا من خلال هذا المثال إستدعاء العناصر بداية من العنصر السادس ونهاية بالعنصر العاشر للمتجه A .
>> A(6:10)
ans =
6 7 8 9 10
وهذه هي العناصر الخمسة الاخيرة من المتجه A حيث أن الرمز 6:10 يعني ابدا من العنصر السادس وقم بالعد تصاعديا حتي تصل إلي العنصر العاشر .
كما يمكننا تنفيذ المثال السابق من خلال تحرير الأمر التالي :
>> A(6 : and ) ;
حيث أن الرمز 6:end تعني أبدا من العنصر السادس وحتي العنصر الاخير من المتجه A فالكلمة end تعني العنصر الاخير من المتجه A .
ملحوظة : في المثال السابق لم نقم بتعريف الخطوة بين العنصر الاول والعنصر الاخير لأن الخطوة الافتراضية Default step في برنامج MATLAB هي الخطوة (+) .
إستدعاء عنصر معين من عناصر المصفوفة :
يمكننا إستدعاء عنصر معين من عناصر المصفوفة بدلالة رقم الصف ورقم العمود الذي به هذا العنصر بحيث يكون علي الصورة التالية :
Matrix_Name (m,n)
حيث يمثل m رقم الصف ويمثل n قم العمود للمصفوفة التي بها العنصر المراد إستدعائه .
ولتوضح هذا الامر نقوم بعمل المثال التوضيحي التالي :
- قم بتعريف المصفوفة A كما يلي :
>> A=[ 1 3 7;2 4 6;7 8 3]
A=
1 3 7
2 4 6
7 8 3
- والأن لإستدعاء العنصر الموجود في الصف الثاني والعمود الثالث قم بتحرير الأمر التالي :
>> B=A (2,3)
B =
6
إستدعاء اكثر من عنصر من عناصر المصفوفة
يمكننا تحديد مجموعة معينة من قيم عناصر المصفوفة لتوليد مصفوفة جزئية من المصفوف الاصلية ويكون ذلك علي الصورة التالية :
Matrix_Name(start.row.step1:end row,start.column:step2:end column)
حيث ان معني ((start.row.step:end row هو ان نبدأ بالصف start.row وننتهي بالصف end row وبخطوة مقدارها step1 تقوم انت بإختيارها ومعني start.column:step2:end) column) هو أن نبدأ بالعمود start.column وننتهي بالعمود end row وبخطوة مقدارها step2 تقوم انت بإختيارها .
ولتوضح هذه الصورة تابع الأمثلة التوشيحية التالية :
المثال الأول :
- قم بتعريف المصفوفة A كما يلي :
>> A=[1 3 7;2 4 6;7 9 8]
A =
1 3 7
2 4 6
7 9 8
- لنقل أننا نريد تحديد قيم العناصر الموجودة في الصفين الأول و الثالث وأيضا العمودين الثاني والثالث من المصفوفة A بتحرير الأمر التالي :
>> B=A (1:2:3,2:3)
B =
3 7
9 8
لنلاحظ أننا قد قمنا بإختيار العناصر الموجودة في الصفين الأول والثالث وأيضا العمودين الثاني والثالث من المصفوفة A وقمنا بتكوين المصفوفة B حيث أن 1:2:3 تعني أننا سنبدأ بالصف الأول وسننتهي بالصف الثال بخطوة تساوي 2 كما تعني 2:3 أننا سنبدأ بالعمود الثاني وسننتهي بالعمود الثالث بالخطوة الإفتراضية 1 .
المثال الثاني :
في هذا المثال سنقوم باختيار الصفين بداية من الصف الثاني وحتي الثالث ( بالخطوة الافتراضية 1 + ) وجميع الأعمدة بداية من العمود الثالث وحتي العمود الأول ( بخطوة تساوي 1-) كما يلي :
>> C=A (2:3,3:-1:1)
C =
6 4 2
8 9 7
المثال الثالث :
في هذا المثال سنقوم بإختيار الصف الثاني وجميع الأعمدة للمصفوفة A ( إذا لم نكن نعرف حجم المصفوفة A ) كما يلي :
>> D=A (2,:)
D =
2 4 6
ملحوظة : في المثال السابق قمنا بإستخدام العلامة Colon (:) بمفردها (دون أرقام قبلها أو بعدها ) فعند وجودها في معامل الصفوف يكون معناها هو اختر جميع الصفوف أي تكون مكافئة لـــ 1:3 حيث أن المصفوفة A تتضمن ثلاثة صفوف وعند وجودها في معامل الأعمدة فيكون معناها هو اختر جميع الأعمدة أي تكون مكافئة لـــ 1:3 حيث أن المصفوفة A تتضمن ثلاثة أعمدة .
إضافة عناصر جديدة إلي عناصر المتجه :
يمكننا برنامج MATLAB من إضافة عناصر جديدة إلي أي موضع في المتجه مما ينتج عنه زيادة في طول Length المتجه .
فلنقوم الأن بتعريف المتجه الصفي A كما يلي :
>> % Defining A as a row vector
>> A=[1,2,3,4,5] ;
كما هو واضح أن عدد عناصر المتجه الصفي A هي 5 ويمكننا التأكد من ذلك بتحرير الامر length(A) في نافذة محرر الأوامر .
والان لنفترض أننا نريد إضافة الرقم 10 في الخانة السادسة أي الخانة التالية للخانة الخامسة باستخدام الامر التالي :
>> A(6) =10
A =
1 2 3 4 5 10
لنلاحظ انه بالفعل قد تمت إضافة الرقم 10 إلي الخانة 6 .
ملحوظات :
* يمكنا تطبيق نفس العملية السابقة ( إضافة عنصر إلي الخانة السادسة في المتجه ) بإستخدام أحد الأمران التاليان :
الأمر الأول :
>> A (end+1) = 6
الأمر الثاني :
>> A= [A(1:5),6]
* ماذا إذا أردنا إضافة عنصر جديد في الخانة رقم 7 فماذا ستكون قيمة الخانة 6 التي لم يتم إضافة أي عنصر لها ؟؟؟
والأن لنجرب سويا إضافة عنصر جديد في الخانة رقم 7 ونري ماذا يحدث للخانة 6 .
>> % Redefining A as a row vector
>> A=[1,2,3,4,5] ;
>> A(7) =20
A =
1 2 3 4 5 0 20
لنلاحظ ان برنامج MATLAB قد افترض قيمة الخانة 6 بصفر علي الرغم من عدم إدخالنا لقيمتها وبالتالي نستنتج أن أي خانة نقوم بتجاوزها عند إضافة قيمة جديدة يقوم برنامج MATLAB بفرض قيمتها بصفر .
كما يمكننا تطبيق نفس المثال السابق ( إضافة عنصر جديد في الخانة رقم 7 ) من خلال تحرير الأمر التالي :
>> A(end+2)=20
إضافة أكثر من عنصر متتالي إلي عناصر المتجه :
لنفترض أننا نريد إضافة مجموعة من العناصر المتتالية في الخانات 6,7,8 فبدلا من إدخال كل رقم علي حده كما في الشكل التالي :
>> A=[1,2,3,4,5] ;
>> A(6) = 10;
>> A (7) = 20;
> A(8) = 30;
قد تبدوا هذه الطريقة سهلة ومباشرة في حالة إضافة عدد محدود من العناصر الجديدة ولكن ماذا إذا أردنا إضافة 100 عنصر متتالي حينئذ ستكون هذه الطريقة مستنفذة للوقت لذا فيوفر لنا برنامج MATLAB طريقة سهلة إذا أردنا إضافة مجموعة كبيرة من العناصر المتتالية فمثلا كما في مثالنا إذا اردنا إضافة مجموعة من العناصر المتتالية في الخانات 6,7,8 هناك طريقة في برنامج MATLAB تستخدم إذا اردت أن تضيف مجموعة من الأرقام المتتالية من الخانة السادسة إلي الخانة الثامنة كما في مثالنا بتحرير الأمر التالي :
>> A(6:8) = [10 20 30] ;
وبنفس الطريقة السابقة بمكننا برنامج MATLAB من إضافة أكبر عدد ممكن من الأرقام المتتالية .
ملحوظة : كما رأينا في المثال السابق أن برنامج MATLAB يقوم تلقائيا بتوسعة أبعاد المتجه Vector Length لكي يتناسب مع القيمة التي تم إضافتها إليه وتعد هذه الخاصية من أهم الخصائص المميزة لبرنامج MATLAB .
إضافة عنصر/ عدة عناصر إلي عناصر المصفوفة :
يمكننا برنامج MATLAB من إضافة عنصر / عدة عناصر جديدة إلي أي موضع في المصفوفة مما ينتج عنه زيادة في حجم Size المصفوفة .
- نقوم اولا بتعريف المصفوفة C كما يلي :
>> C=[1 3 7;2 4 6;7 9 8]
C=
1 3 7
2 4 6
7 9 8
- لنفترض الان اننا نريد إضافة الرقم 20 الي الصف الثالث والعمود الرابع ولعمل ذلك قم بتحرير الامر التالي :
>> C(3,5)=20
C =
1 3 7 0 0
2 4 6 0 0
7 9 8 0 20
وكما نلاحظ أننا لم نقم بتحديد قيم بقية العناصر في العمودين الرابع والخامس وبما أن المصفوفة C لا تتضمن خمسة أعمدة فيقوم البرنامج بتوسيع أبعادها إلي (3x5) مع إفتراض كافة العناصر الغير محدد قيمها بأصفار .
- وإذا أردنا إضافة عدة عناصر إلي المصفوفة C فيمكننا مثلا إضافة الأرقام 11,13,15 علي التوالي إلي عناصر العمود الرابع كما يلي :
>> C=[1 3 7;2 4 6;7 9 8] ;
>> C(:,4)=[11 13 15]
C =
1 3 7 11
2 4 6 13
7 9 8 15
إستبدال قيمة عنصر من عناصر المتجه :
يمكننا برنامج MATLAB من إستبدال قيمة عنصر أو عدة عناصر داخل متجه أو مصفوفة بقيمة أخري جديدة (بنفس طريقة الإضافة) ولكن إجراء هذه العملية يتطلب توافر الشرطان التاليان :
1- أن يكون العنصر موجودا بالفعل .
2- تحديد دليل العنصر Element index المراد إستبداله .
فعلي سبيل المثال إذا أردنا إستبدال قيمة العنصر الثالث بدلا من القيمة الرقمية 3 إلي القيمة الرقمية 30 في المتجه A فنقوم بكتابة الأمر التالي :
>> A=[1,2,3,4,5] ;
>> A(3) = 30
A =
1 2 30 4 5
وبنفس هذه الطريقة نستطيع أن نغير قيمة أي عنصر من عناصر المتجه A وبالمثل يمكننا إستبدال قيمة العنصر الأخير بدلا من الرقم 5 إلي الرقم 50 بإستخدام الامر التالي :
>> A(end) = 50 ;
كما يمكننا إستبدال قيمة العنصر قبل الاخير بدلا من الرقم 4 إلي الرقم 40 بإستخدام الامر التالي :
>> A(end-1)=40 ;
إستبدال قيم عدة عناصر متتالية من عناصر المتجه :
كما سبق وتعلمنا كيفية إضافة مجموعة عناصر متتالية سنقوم بإستبدال مجموعة عناصر متتالية بنفس طريقة الإضافة فمثلا يمكننا إستبدال قيم العناصر بداية من العنصر الثالث وحتي العنصر الخامس بقيم جديدة كما يلي :
>> A=[1,2,3,4,5] ;
>> A(3:5) =[6 6 6];
إستبدال قيمة عنصر / عدة عناصر من عناصر المصفوفة :
يمكننا القيام بعملية إستبدال عنصر/عدة عناصر من المصفوفة حيث انها تشبة عملية إستدعاء أو إضافة عنصر / عدة عناصر إلي حد كبير ولكن إجراء هذه العملية يتطلب توافر الشرطان التاليان :
1- أن يكون العنصر موجودا بالفعل .
2- تحديد دليل هذا العنصر بدلالة رقم الصف ورقم العمود الذي يتواجد به العنصر المراد إستبداله .
ولإيضاح عملية إستبدال عنصر / عدة عناصر من عناصر المصفوفة تابع المثال التوضيحي التالي :
* نقوم أولا بتعريف المصفوفة B كما يلي :
>> B=[1 3 7 2;3 4 6 1;7 9 8 4]
B =
1 3 7 2
3 4 6 1
7 9 8 4
- والان نقوم بإستبدال قيمة العنصر الموجود في الصف الثالث والعمود الاول إلي القيمة صفر بتحرير الأمر التالي :
>> B (3,1)=0
B =
1 3 7 2
3 4 6 1
0 9 8 4
- وإذا أردنا إستبدال عدة عناصر فعلي سبيل المثال يمكننا إستبدال قيم العناصر الموجودة قي الصفين من الاول الي الثالث والعمودين من الاول إلي الثاني إلي القيمة صفر بتحرير الامر التالي :
>> B (1:3,1:2)=0
B =
0 0 7 2
0 0 6 1
0 0 8 4
حذف عنصر / عدة عناصر من عناصر المتجه :
يمكننا برنامج MATLAB من حذف عنصر أو عدة عناصر داخل متجه أو مصفوفة ولكن لإجراء هذه العملية يتطلب توافر الشرطان التاليان :
1- تحديد دليل العنصر Element index المراد حذفه .
2- وضع أقواس مربعة Square Brackets خالية من أي رقم لتدل علي عملية الحذف وينتج عن إجراء عملية الحذف نقصان في طول Length المتجه .
فعلي سبيل المثال يمكننا حذف العنصر في الخانة الخامسة كما يلي :
>> A=[1 2 3 4 5] ;
>> A(5) = [ ]
A =
1 2 3 4
كما يمكننا إجراء عملية الحذف لمجموعة من العناصر المتتالية بنفس طريقتي الإضافة والإستبدال فمثلا يمكننا حذف العناصر من العنصر الثالث إلي العنصر الخامس كما يلي :
>> A % call row vector A
A =
1 2 3 4 5
>> A(3:5) = [ ]
A =
1 2
حذف عنصر / عدة عناصر من عناصر المصفوفة :
لا يمكننا برنامج MATLAB من إجراء عملية حذف لعنصر واحد فقط من عناصر المصفوفة حيث أنه ليس من المعقول حذف عنصر من داخل المصفوفة وبقية عناصر الصف والعمود المتضمنين لهذا العنصر بهم قيم وإذا حاولت عمل ذلك سيقوم البرنامج بإعطائك رسالة خطأ كما يلي :
>> B=[1 3 7 2;3 4 6 1;7 9 8 4]
B =
1 3 7 2
3 4 6 1
7 9 8 4
>> B (1,1)=[ ]
??? Subscripted assignment dimension mismatch .
ولكن إذا اردت أن تقوم بحذف صف كامل أو عمود كامل فيمكننا البرنامج من عمل ذلك فلنفترض مثلا أننا نريد حذف العمود الثالث كله بإستخدام الأمر التالي :
>> B (:,3) = [ ]
B =
1 3 2
3 4 1
7 9 4
ولحذف العمود الصف الثالث كله من المصفوفة B قم بتحرير الامر التالي :
>> B (3,:) = [ ]
B =
1 3 7 2
3 4 6 1
حساب محدد المصفوفة : Calculation Matrix determent
تستخدم الدالة det(A) وهي اختصار لكلمة determent في حساب محدد المصفوفة المربعة Square Matrix وهي المصفوفة التي يكون فيها عدد الصفوف مساوي لعدد الاعمدة كما هو موضح بالمثال التالي :
>> % Defining a square Matrix [A]
>> A=[12 8 4;5 7 3;1 5 6];
>> % Getting Determint of Matrix [A]
>> D=det (A)
D =
180
حساب معكوس المصفوفة Calculation Matrix inverse
تستخدم الدالة inv(A) وهي اختصار لكلمة inverse في حساب معكوس المصفوفة المربعة وهي المصفوفة التي يكون فيها عدد الصفوف مساوي لعدد الاعمدة كما هو موضح في المثال التالي :
>> % Defining a square Matrix [A]
>> A= [12 8 4;5 7 3;1 5 6] ;
>> % Getting inverse of matrix [A]
>> B=inv (A)
B =
0.1500 -0.1556 -0.0222
-0.1500 0.3778 -0.0889
0.1000 -0.2889 0.2444
ملحوظة : معني المصفوفة العكسية لـــ A هي المصفوفة التي إذا ضربناها في المصفوفة A فإننا سوف نحصل علي المصفوفة المحايدة .
ولكي نتأكد من ذلك نقوم بضرب المصفوفة A بالمصفوفة العكسية لها B والتي أوجدناها قبل قليل ونقوم بتخزين الناتج في المصفوفة C كما يلي :
>> C=A*B
C =
1.0000 0.0000 -0.0000
-0.0000 1.0000 -0.0000
-0.0000 0.0000 1.0000
وبالفعل حصلنا في المتغير C علي المصفوفة المحايدة والتي يتضمن عناصر قطرها الرئيسي أحاد وأصفار فيما عدا ذلك وفي الحقيقة فإن الأصفار الظاهرة ليست أصفار تماما !! وانما في قريبة جدا في الصفر .
موضع رائع لي فهم المصفوفات ... بس ياريت مساعدة انا عامل بحث على data compression using 2d wavelet وأخذ برنامج المعالجة من الماتلاب بس الصراحة ما عرفت كيف اغير الصوره الموجودة في الكود ولو غيرت الصوره لازم اغير شي في البرنامج ولا مايحتاج ؟
ردحذف