تقسیم کردن (Division) اعداد، با برگرداندن نتیجه به صورت اعداد صحیح (Integer) و با امکان تعیین گزینه هایی برای چگونگی گرد کردن (رند کردن – Round) نتیجه، با دستور idivide ، در متلب (MATLAB)
دستور idivide در متلب (MATLAB)، برای تقسیم کردن (Division) اعداد به کار می رود و همچنین بخش اعشاری نتیجه را حذف می کند تا نتیجه تقسیم به صورت یک عدد صحیح (Integer) باشد.
دستور idivide برای تقسیم A بر B ، به صورت زیر به کار می رود (که A و B می توانند هر کدام یک عدد و یا هر کدام یک ماتریس با اندازه مشابه باشند و در حالت ماتریس بودن، عنصرهای متناظر از دو ماتریس A و B بر یکدیگر تقسیم می شوند) :
که در واقع معادل کد زیر می باشد، تنها با این تفاوت که بخش اعشاری آن حذف می شود (با گرد کردن) :
ما می توانیم تعیین کنیم که وقتی دستور idivide ، نتیجه را گرد (رند – Round) می کند (برای حذف قسمت اعشاری آن)، از چه دستوری (مرتبط با گرد کردن) استفاده نماید. برای این منظور، می توانیم هر یک از 4 مورد (دستور) زیر را برای نوع گرد (رند – Round) کردن، انتخاب نماییم :
round
floor
ceil
یعنی دستور idivide می تواند به شکل های زیر به کار رود :
به مثال زیر توجه کنید :
close all
clc
A = 4;
B = 3;
C = A./B
A = int32(A);
B = int32(B);
C = idivide(A, B)
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
اگر از دستور int32 برای تبدیل اعداد استفاده نکنیم، با پیام خطا روبرو خواهیم شد (دستور int32 ، عدد دریافت شده را به عدد صحیح (Integer) از نوع int32 تبدیل می کند، یعنی تبدیل به عدد صحیح (Integer) ذخیره شده بر مبنای تعریف 32 بیتی (32-bit)).
نتیجه :
1.3333
C =
1
close all
clc
A = [4 6 5 8 7];
B = [3 4 1 3 7];
C = A./B
A = int32(A);
B = int32(B);
C = idivide(A, B)
نتیجه :
1.3333 1.5000 5.0000 2.6667 1.0000
C =
1 1 5 2 1
close all
clc
A = [4 6 5 8 7];
B = [3 4 1 3 7];
C = A./B
A = int32(A);
B = int32(B);
C = idivide(A, B)
C_fix = idivide(A, B, ‘fix’)
C_round = idivide(A, B, ’round’)
C_floor = idivide(A, B, ‘floor’)
C_ceil = idivide(A, B, ‘ceil’)
نتیجه :
1.3333 1.5000 5.0000 2.6667 1.0000
C =
1 1 5 2 1
C_fix =
1 1 5 2 1
C_round =
1 2 5 3 1
C_floor =
1 1 5 2 1
C_ceil =
2 2 5 3 1
اگر از دو متغیر A و B ، یکی ماتریس و دیگری تنها یک عدد (Scalar) باشد، آنگاه آن متغیری که تنها یک عدد (Scalar) بوده، برابر ماتریسی با اندازه متغیر دیگر و با عنصرهای برابر همان عدد تنها، در نظر گرفته می شود و عملیات تقسیم بر روی عناصر متناظر از دو ماتریس، اجرا می گردد.
به مثال زیر توجه کنید :
close all
clc
A = 4;
B = [3 4 1 3 7];
C = A./B
A = int32(A);
B = int32(B);
C = idivide(A, B)
نتیجه :
1.3333 1.0000 4.0000 1.3333 0.5714
C =
1 1 4 1 0
close all
clc
A = [4 6 5 8 7];
B = 3;
C = A./B
A = int32(A);
B = int32(B);
C = idivide(A, B)
نتیجه :
1.3333 2.0000 1.6667 2.6667 2.3333
C =
1 2 1 2 2