seminar matlab

21
structure دا ام خ ه ن ب ودی م ح م ود م ح م دی ی ح ر و کت وطه: د ب ر م اد ی س ا1

Upload: mahmood-mahmoodi

Post on 08-Jan-2017

228 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Seminar matlab

structureبه نام خدا

استاد مربوطه: دکتر محمود محمودیوحیدی 1

Page 2: Seminar matlab

فهرستمقدمه نمونه

روش هاStructureتوابع مختلف در

2

Page 3: Seminar matlab

معمولی ساخت که معمولی ساخت که در متلب نمی توان آرایه یا ماتریسیدر متلب نمی توان آرایه یا ماتریسیبتوان انواع متفاوتی از داده را در آن قرار داد. بتوان انواع متفاوتی از داده را در آن قرار داد.

برای حل این مشکل دو راه برای حل این مشکل دو راه ::وجود داردوجود دارد

((CellCell))استفاده از سلول ها استفاده از سلول ها - - 11

((StructureStructure))استفاده از ساختار ها استفاده از ساختار ها - - 22

3

مقدمه

Page 4: Seminar matlab

4

StructureStructure آرایه ایست که می تواند مقادیری از انواعمختلفی داده مانند عدد، کاراکتر، رشته و ... را در خود

ذخیره کند.

مزیت دیگر ساختارها در این است که نیازی نیست مزیت دیگر ساختارها در این است که نیازی نیست ..تعداد ستونهای هر سطر با هم برابر باشدتعداد ستونهای هر سطر با هم برابر باشد

Structure ها فرم درختی دارند یعنی شامل اطالعاتی هستند که هر کدام آنها خود نیز دارای اطالعات دیگری

هستند و ...

Page 5: Seminar matlab

برای مثال میخواهیم اطالعات درسی چند دانشجو شامل نام ونمره چند درس و رتبه آنها را که به صورت نمودار درختی

روبرو است در یک ساختار ذخیره کنیم:

5

نمونه

Page 6: Seminar matlab

6

دو روش وجود دارد Structureبرای تعریف

-دینامیک یا 1پویا

struct-استفاده از تابع 2

Page 7: Seminar matlab

-دینامیک یا پویا1در روش اول ابتدا نام ساختار را نوشته و سپس یک

نقطه تایپ نموده و نام شاخه بعدی را نوشته و به .همین طریق تا انتهای سطر

ساخته و نام Studentsبرای مثال ساختاری با نام دانشجوی اول را در آن ذخیره میکنیم:

حال نمره ی درس ترمودینامیک را بدین صورت :ذخیره میکنیم

7

Page 8: Seminar matlab

:و به همین ترتیب مقادیر بعدی

برای بقیه دانشجویان نیز به همین ترتیب:

8

Page 9: Seminar matlab

برای دسترسی به یک خانه مورد نظر مانند روش قبل فشار دهید Enterآدرس آن را نوشته و کلید

برای مثال میخواهیم نمره کارگاه نرم افزار حسین حسینی را مشاهده کنیم:

9

Page 10: Seminar matlab

struct-استفاده از تابع 2

فرم تعریف این تابع به این شکل :است

f = struct )‘field1’ , value1 , ‘field2’ , value2 , . . . )

را به یک ساختار تبدیل میکند که دارای Fاین دستور است و مقادیر آنها … و field2 و field1شاخه های

و... استvalue2 و value1به ترتیب برابر

10

Page 11: Seminar matlab

structبرای نوشتن اطالعات درسی دانشجویان با تابع را تعریف کرده و سه دانشجو را در آن studentsابتدا

قرار می دهیم:

11

Page 12: Seminar matlab

هر دانشجو خود یک ساختار است که شامل نمرات و رتبه آنهاست به همین خاطر باید توابع آنها را نیز

بنویسیم.برای نوشتن اطالعات دانشجوی اول دستور زیر را

:می نویسیم

خود به ساختاری تبدیل می شود که std1با این دستور شامل نمرات و رتبه ی دانشجوی اول است.

حال دانشجوی دوم:

12

Page 13: Seminar matlab

نمره حرارت دانشجوی دوم خود شامل میان ترم و :پایان ترم است

دانشجوی سوم:

13

Page 14: Seminar matlab

توابعی در Structure :

1 -isstruct: این تابع چک میکند که آیا ورودی ، یکstructure است

یا خیر. در صورت مثبت بودن عدد یک و در غیر این صورت

صفر را برمیگرداند.

تابعی به همین شکل و فرم با نامIsfield وجود دارد که فیلد بودن را چک می

کند14

Page 15: Seminar matlab

2 – getfield : مقدار یک فیلد از یکstructure را بر می :گرداند

getfield ) structure , ‘field’ )

15

Page 16: Seminar matlab

3 – rmfield یک فیلد را حذف : ( ’rmfield ) structure , ‘fieldمی کند:

4 – setfield یک فیلد به ساختار اضافه کرده و مقدار: v را :در آن قرار میدهدsetfield ) structure, ‘field’, v)

با دستورات روبرو نمره جرم را حذف کرده 3 دانشجوی

:و مقدار جدیدی به آن می دهیم

16

Page 17: Seminar matlab

5 – fieldnames نام فیلدهای یک: structure را برمیگرداند:

Names = fieldnames ) structure )

17

Page 18: Seminar matlab

6 – orderfields فیلدها را بر اساس حروف الفبا ::مرتب می کند

Snew = orderfields ) structure )

وجود دارد که به orderfieldsنوع دیگری از تابع ( Snew = orderfields ) structure1 , structure2فرم زیر است:

این تابع ساختار اول را دقیقا مانند ترتیب موجود در ساختار دوم مرتب میکند. نکته مهم این است که فیلدهای

دو تابع باید یکی باشند

18

Page 19: Seminar matlab

7– deal :مقادیر سمت راست را در سمت چپ قرار می دهد:

[a b c d = ]deal )x1 , x2 , x3 , x4)

19

Page 20: Seminar matlab

ساختار و فیلد نیز قرار داد:dealمی توان در تابع

20

Page 21: Seminar matlab

Thank You for listening!

21