خلاصه مطلب
ساختارها یا structها در متلب را با مثال های ساده بهت یاد داده ام.
فهرست جلسات مینی دوره متلب
جلسه اول | آموزش تصویری نصب برنامه متلب در کامپیوتر
جلسه دوم | آموزش کار با برنامه متلب
جلسه سوم | آموزش کار با توابع ریاضی ساده در متلب
جلسه چهارم | آموزش متغیرها در برنامه نویسی متلب
جلسه پنجم | معرفی انواع داده ها در متلب
جلسه ششم | آرایه ها در برنامه نویسی متلب
جلسه هفتم | ماتریس ها در برنامه نویسی متلب
جلسه هشتم | ادامه ماتریس ها در برنامه نویسی متلب
جلسه نهم | رشته ها در برنامه نویسی متلب
جلسه دهم | آرایه سلول ها در برنامه نویسی متلب
جلسه یازدهم | اسکریپت ها در برنامه نویسی متلب
جلسه دوازدهم | آرایههای چندبعدی در متلب
جلسه سیزدهم | حلقه ها و دستورات شرطی در متلب
جلسه چهاردهم | ساختارها(structures) در متلب
جلسه پانزدهم | توابع در متلب
جلسه شانزدهم | رسم نمودار دوبعدی در متلب
جلسه هفدهم | ادامه رسم نمودار دوبعدی در متلب
جلسه هجدهم | رسم نمودار سه بعدی در متلب
جلسه نوزدهم | محاسبات نمادین در متلب
جلسه بیستم(آخر) | ادامه محاسبات نمادین در متلب

آموزش برنامه نویسی متلب موضوع:ساختارها(structures) در متلب جلسه: چهاردهم مدرس : مدرسین جاوا پرو متلب را ساده،آسان و شیرین بنوشید!!!
تدریس خصوصی آنلاین و از راه دور متلب(MATLAB) با مدرس های حرفه ای و با تجربه [اینجا کـــــلیک کــــنید]
ساختارها یا structها آرایه هایی هستند که برای ذخیره یک گروه داده های مرتبط به کارمی وند. ساختارها همانند آرایه سلول ها می توانند انواع مختلفی را در خود ذخیره کنند، اما برای دسترسی به محتویات یک ساختار مانند زیر عمل می کنیم:
| structname.fieldname |
سمت چپ "." نام داده و سمت راست آن فیلد مربوط قرار می گیرد. فیلدها نام محل ذخیره داده های یک ساختار هستند. همانند بالا از نقطه برای ایجاد، تخصیص و دسترسی به محتویات فیلد استفاده می شود.
- مثال: فرض کنیم قصد داریم اطلاعات یک دانشجو که شامل نام و معدل و ماتریس نمرات می باشد را در یک متغیر student ذخیره کنیم،یک داده از نوع struct تعریف می کنیم که شامل فیلدهای name، average و grades می باشد:
| >>student.name = 'Ali'; >>student.average = 19; >>student.grades = [18 19;20 20;19.5 18]; |
برای دسترسی به مقادیر ذخیره شده در فیلدها، پس از ذکرنام متغیر و نقطه، نام فیلد مورد نظر را می نویسیم:
| >>student.name ans = Ali |
حال فرض کنیم اطلاعات دانشجویان دیگر را نیز به همین ترتیب وارد کنیم، یک راه تعریف یک به یک متغیرهای جدید و راه بهتر بسط و گسترش ساختار فوق به یک آرایه ساختار است. به این شکل عمل می-کنیم:
| >>student(2).name = 'hasan'; >>student(2).average = 18; >>student(2).grades = [16 18;19 19]; |
اندیس 2 بیانگر این است که یک آرایه داریم، اما آرایه ای از نوع struct:
| >>student student = 1x2 struct array with fields: name average grades |
به همین ترتیب می توان دانشجویان بیشتری تعریف کرد. برای دسترسی به دانشجوی دوم باید از اندیس 2 استفاده کرد اما دانشجوی اول:
| >>student.name ans = Ali ans = hasan |
می بینیم که دستور فوق کل اطلاعات ذخیره شده در فیلد name را برمی گرداند.پس از تعریف آرایه ساختار، برای دسترسی به اطلاعات فیلد دانشجوی اول از اندیس 1 استفاده باید کرد:
| >>student(1).name ans = Ali |
اگر برای دانشجوی سومی فقط یک فیلد مثلا average را وارد کنیم:
| >>student(3).average = 20 student = 1x3 struct array with fields: name average grades |
مشاهده شد که فیلدهای دیگر نیز برای این دانشجو تعریف شده ولی مقدار پیش فرض آن ماتریس تهی “[]” می باشد:
| >>student(3).name ans = [] |
- بنابراین در یک آرایه ساختار همه ساختارها از تعداد برابری فیلد برخوردارند. - اسامی این فیلدها نیز یکسان است. - اما فیلدهای یکسانِ ساختارهای مختلف، می توانند نوع داده متفاوتی بگیرند:
| >>student(3).name = 100; >>student.name ans = Ali ans = hasan ans = 100 |
- struct: راه دیگر تعریف یک ساختار، استفاده از دستور فوق است:
| >>s = struct S = struct with no fields |
فیلدها و مقادیر در ساختار فوق خالی بوده و مشابه قبل می توان آن ها را تعریف نمود. راه دیگر استفاده از شکل کاملتر این دستور:
| >>struct(field,value) |
- مثال:
| >>s = struct('name','Ali'); |
یک آرایه ساختاری به شکل زیر تعریف می شود:
| >>struct(field,cell_array) |
به جای cell array یک آرایه سلولی تعریف می کنیم، مثال:
| >>s = struct('name',{'Ali','Hasan'}) s = struct array with fields: name >>s.name ans = Ali ans = Hasan |
- نکته: اگر به جای cell array، از {} استفاده کنیم، یک ساختار خالی 0در0 خواهیم داشت.
ایجاد فیلدها و مقادیر مختلف با دستور struct:
| >>struct(field1,value1,field2,value2,…) |
-مثال:
| >>s = struct('name',{'Ali','Hasan'},'age',{23 25}) s = struct array with fields: name age |
- نکته: فیلدها از نوع رشته و مقادیر آن ها از نوع سلول بوده، و درنتیجه می توان این گونه نیز آن ها را تعریف نمود:
| >>field1 = 'name'; value1 = {'Ali' 'Reza'}; >>field2 = 'age'; value2 = {20 22}; >>field3 = 'height'; value3 = {180 178}; >>field4 = 'weight'; value4 = {80 65}; >>struct(field1,value1,field2,value2,field3,value3,field4,value4); ans = 1x2 struct array with fields: name age height weight |
فیلدها میتوانند حاوی مقادیر آرایه سلولی باشند:
| >>field = 'colors'; >>value = {{'Red' 'Yello' 'green'}}; >>struct(field,value) ans = colors: {'Red' 'Yello' 'green' |
- دستور fieldnames(s): ورودی آن یک structure است که در خروجی نام فیلدها را برمی گرداند:
| >>fieldnames(s) ans = 'name' 'age' |
- دستور isstruct(s) : اگر ورودی آن یک structure باشد، مقدار 1 و در غیر این صورت صفر برمی گرداند:
| >>A = cell(3,2); >>s = struct; isstruct(A) ans = 0 |
- دستور isfield(s,’fieldname’): بررسی می کند که فیلد fieldname جزو فیلدهای ساختار s می باشد یا خیر:
| >>s.temperature = [15 12 25]; >>s.humidity = [.2 .35 .11 .14 .17]; >>isfield(s,'temperature') ans = 1 >>isfield(s,'height') ans = 0 |
می توان یک آرایه سلولی از فیلدهای مختلف تشکیل داد و این آرایه را به عنوان ورودی دستور داد:
| >>field = {'temperature' 'humidity' 'age' 'height'}; >>isfield(s,field) ans = 1 1 0 0 |
در خروجی یک آرایه برمی گرداند که حاوی صفر و یک هایی است که مربوط به فیلدهای موجود در s می باشد.
- دستور rmfield(s,field): فیلد field را از s حذف می کند. مثلا:
| >>s.name = 'Ali'; >>s.age = 20; >>s.grades = [19 14 17]; >>rmfield(s,'age') ans = name: 'Ali' grades: [19 14 17] |
می توان مشابه دستور isfield یک آرایه سلولی از فیلدها را یک جا حذف نمود:
| >>fields = {'name' 'age'}; >>rmfield(s,fields) ans = grades: [19 14 17] |
- دستور orderfields(s): فیلدهای ساختار s را به ترتیب حروف الفبا مرتب می کند:
| s.c = []; s.b = []; s.e = []; s.a = []; s.d = []; fieldnames(s) ans = 'c' 'b' 'e' 'a' 'd' orderfields(s) ans = a: [] b: [] c: [] d: [] e: [] |
پیروز و موفق باشید
جلسه چهاردهم | ساختارها(structures) در متلب
فرمت:PDF (لطفا در صورت خرابی لینک دانلود گزارش بدید که لینک اصلاح کنیم)


