menusearch
javapro.ir

جلسه چهاردهم | ساختارها(structures) در متلب

جستجو
پنج شنبه ۱۱ آذر ۱۴۰۰ | ۱:۱۸:۵۰
۱۴۰۰/۸/۳۰ یکشنبه
(2)
(0)
جلسه چهاردهم | ساختارها(structures) در متلب
جلسه چهاردهم | ساختارها(structures) در متلب

فهرست جلسات مینی دوره متلب

جلسه اول | آموزش تصویری نصب برنامه متلب در کامپیوتر

جلسه دوم | آموزش کار با برنامه متلب

جلسه سوم | آموزش کار با توابع ریاضی ساده در متلب

جلسه چهارم | آموزش متغیرها در برنامه نویسی متلب

جلسه پنجم | معرفی انواع داده ها در متلب

جلسه ششم | آرایه ها در برنامه نویسی متلب

جلسه هفتم | ماتریس ها در برنامه نویسی متلب

جلسه هشتم | ادامه ماتریس ها در برنامه نویسی متلب

جلسه نهم | رشته ها در برنامه نویسی متلب

جلسه دهم | آرایه سلول ها در برنامه نویسی متلب

جلسه یازدهم | اسکریپت ها در برنامه نویسی متلب

جلسه دوازدهم | آرایه‌‌‌‌‌های چندبعدی در متلب

جلسه سیزدهم | حلقه ها و دستورات شرطی در متلب

جلسه چهاردهم | ساختارها(structures) در متلب

جلسه پانزدهم | توابع در متلب

جلسه شانزدهم | رسم نمودار دوبعدی در متلب

جلسه هفدهم | ادامه رسم نمودار دوبعدی در متلب

جلسه هجدهم | رسم نمودار سه بعدی در متلب

جلسه نوزدهم | محاسبات نمادین در متلب

جلسه بیستم(آخر) | ادامه محاسبات نمادین در متلب

 

مینی دوره آموزش رایگان برنامه نویسی متلب

 

 

آموزش برنامه نویسی متلب
موضوع:ساختارها(structures) در متلب
جلسه: چهاردهم
مدرس : مدرسین جاواپرو
متلب را ساده،آسان و شیرین بنوشید!!!

 

 

 

 

ساختارها یا 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 (لطفا در صورت خرابی لینک دانلود گزارش بدید که لینک اصلاح کنیم)

 

 

لینک دانلود آموزش رایگان اندروید

لینک دانلود

 

 

نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر