آموزش متلب

بازیابی داده ها و عملیات روی ماتریس و آرایه ها در متلب

بازیابی داده ها و عملیات روی ماتریس و آرایه ها در متلب

ذخيره كردن و بازيابي داده ها
در صورتي كه بخواهيد كليه متغيرهــاي موجـود در محيـط كـار (workspace) را ذخـيره كنيـد از
دستور save استفاده كنيد:

» save
Saving to: matlab.mat

اين دستور، داده ها را در پرونده matlab.mat ذخيره مي نمايد. داده هاي موجود در اين پرونــده را
مي توان به طريق زير بازيابي نمود:

» load
Loading from: matlab.mat

درصورتي كه لازم باشد مي توانيد نام پرونده ذخيره را خودتان تعيين كنيد:

» save myfile

و آن را با دستور زير بازيابي نماييد:

» load myfile

اگر مي خواهيد كه فقط بعضي از متغيرها را ذخيره كنيد، نام آنها را بعد از نام پرونده بياوريد:

» save myfile t f

در صورتي كه بخواهيد تعدادي از متغيرها را از حافظه پاك كنيــد كـافي اسـت نـام آنـها را پـس از
دستور clear بياوريد:

» who
Your variables are:
a f n t w
ans m p v
» clear a f
» who
Your variables are:
ans n t w
m p v

در صورت استفاده از دستور clear بدون ذكر نام متغيري پس از آن، كليه متغيرهــا از حافظـه پـاك
مي شوند.
توجه كنيد كه دستور save به صورتي كه در بالا نشان داده شد داده ها را به شـكل binary ذخـيره
مي نمايد و فقط در محيط MATLAB مي توانيد ايــن داده هـا را بازيـابي كنيـد. در ايـن صـورت
متغيرها با همان نامي كه ذخيره شده اند، بازيابي مي گردند. در مواردي كه نياز داشـته باشـيد كـه
داده ها را در محيطهاي ديگري بازيابي نماييد بايد متغيرها را به صورت ascii ذخيره كنيد:

» save name t -ascii
» clear
» load name
» who
Your variables are:
name

همانطور كه در بالا مشاهده مي كنيد هنگام بازيابي يك پرونده ascii نام متغير، همــان نـام پرونـده
خواهد بود. ضمنا” پرونده ascii ايجاد شده فاقد دنباله (extension) است مگر آنكه دنباله را در نــام
پرونده ذكر كنيد.

 

عمليات ماتريسي روي آرايه ها
در MATLAB مي توان دو نوع عمليات روي آرايه ها انجــام داد كـه بـه آنـها عمليـات ماتريسـي و
عمليات عضو به عضو مي گويند. عمليات ماتريسي شامل محاسبه ترانهاده، ضرب ماتريسي، جمـع و
تفريق آرايـه هاي هم اندازه و غيره مي شود. ترانهاده يك ماتـريـس با كمك علامـت پريـم بدسـت
مي آيد:

» r=rand(2,4)
r =
0.9501 0.6068 0.8913 0.4565
0.2311 0.4860 0.7621 0.0185
» r’
ans =
0.9501 0.2311
0.6068 0.4860
0.8913 0.7621
0.4565 0.0185

و جمع و تفريق ماتريســها بـا اسـتفاده از علامتـهاي مربوطـه
ضرب ماتريسي با استفاده از علامت *
انجام مي گيرند:

» v=[1:4];
» r*v’
ans =
6.6636
3.5634
٩
» s=[0:3; 2:-.5:.5];
» s+r
ans =
0.9501 1.6068 2.8913 3.4565
2.2311 1.9860 1.7621 0.5185

تعدادي از توابع ماتريسي در زير آورده شده اند:

دترمينان ماتريس مربعي (det(a
ماتريس وارون (inv(a
مقادير و بردارهاي ويژه ماتريس مربعي (eig(a
چند جمله اي مشخصه ماتريس poly

عمليات عضو به عضو روي آرايه ها
انجام عمليات جبري روي آرايه ها در MATLAB نيازمند دقت است. بطور كلــي دو نـوع عمليـات
مي توان روي آرايه ها انجام داد: ١-عمليات عضو به عضــو، ٢-عمليـات بـرداري-ماتريسـي. اشـتباه
گرفتن اين دو نوع عمليات باعث بروز مشكل در محاسبات مي گردد. دو بردار زير را در نظر بگيريد:

» a=[1 2 3];
» b=[2 -1 0];

فرض كنيد كه مي خواهيد اين دو را در هم ضرب كنيد:

» a*b
??? Error using ==> *
Inner matrix dimensions must agree.

دليل گرفتن پيام خطا از عمل فوق اين است كه در MATLAB استفاده از علامت ضرب به تنـهايي
به معناي ضرب ماتريسي است. بنابراين عمل بالا را مي توان با ترانهاده بردار دوم به انجام رسانيد:

» a*b’
ans =
0

اين عمل در حقيقت ضرب اسكالر دو ماتريس است، يعني: ١*٢+٢*(-١)+٣*٠=٠
حال اگر بخواهيد ضرب عضو به عضو اين دو بردار را به دست آوريد بايد يك نقطــه قبـل از علامـت
ضرب بگذاريد:

» a.*b
ans =
2 -2 0

همين دستورالعمل را مي توان براي تقسيم و به توان رساندن آرايه ها بكار بست:

» a.^2
ans =
1 4 9

در صورت فراموش كردن نقطه قبل از علامت توان:

» a^2
??? Error using ==> ^
Matrix must be square.

سعید عربعامری
من سعید عربعامری نویسنده کتاب 28 گام موثر در فتح متلب مدرس کشوری متلب و سیمولینک و کارشناس ارشد مهندسی برق قدرتم . بعد از اینکه دیدم سایتهای متعدد یک مجموعه کامل آموزش متلب و سیمولینک ندارند به فکر راه اندازی این مجموعه شدم
http://sim-power.ir

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *