تعیین چگونگی نمایش اعداد در خروجی متلب (MATLAB) (تعداد رقم صحیح و تعداد رقم اعشاری و …)، با دستور format ، در متلب (MATLAB)
نرم افزار متلب (MATLAB)، شیوه های مختلفی برای نمایش اعداد (اعداد صحیح و اعداد اعشاری) در خروجی خود دارد و ما می توانیم هر یک از این شیوه ها را توسط دستور format ، انتخاب نماییم.
یعنی می توانیم تعیین کنیم که تنها چند رقم ابتدای هر عدد یا چند رقم اعشاری اول یک عدد اعشاری، نمایش داده شود (برای شلوغ نشدن خروجی متلب) و یا اینکه کل رقم های اعشاری اعداد را در خروجی متلب (MATLAB) ببینیم.
یا به عنوان مثال، ضریبی بر مبنای 10 از اعداد درون یک ماتریس، در خارج از ماتریس نوشته شود (ضرب در ماتریس) تا اعداد درون ماتریس را به شکل ساده تری مشاهده کنیم.
نکته مهم
دستور format تنها شیوه نمایش اعداد در خروجی نرم افزار متلب (MATLAB) را تعیین می کند و هیچ تغییری در مقدار اصلی عدد که در نرم افزار متلب (MATLAB) ذخیره شده، اعمال نخواهد کرد. بنابراین نگران تغییر مقدار اصلی اعداد نباشید (و این دو مفهوم را هم با یکدیگر اشتباه نگیرید) و تنها سعی کنید که با دانستن تفاوت حالت های مختلف نمایش اعداد در خروجی متلب (MATLAB)، بهترین حالت که مناسب خود است را بیابید و توسط دستور format ، آن حالت را انتخاب نمایید.
بنابراین نمایش متفاوت یک عدد در خروجی متلب (توسط دستور format)، باعث نمی شود که مقدار اصلی آن یا محاسباتی که در آینده بر اساس مقدار آن صورت می گیرد، تغییر کند (چون محاسبات بر اساس همان مقدار اصلی ذخیره شده است، نه مقدار نمایش داده شده در خروجی).
همچنین امکان برگرداندن به حالت پیش فرض (Default) نمایش اعداد در خروجی، وجود دارد و بنابراین بدون نگرانی، می توانید حالت فعلی را تغییر دهید و بعد دوباره آن را برگردانید. همچنین اگر قبلا حالت پیش فرض (Default) را تغییر داده اید و حالت دیگری را مناسب خود دیده اید، با کدهایی می توانید حالت تعیین شده فعلی را به دست آورید تا بتوانید بعدا در آخر کدها، دوباره آن را برگردانید.
در تعیین حالت توسط دستور format ، دو مورد Format و FormatSpacing وجود دارد. که مورد Format است که شیوه دقیق نمایش اعداد در خروجی را مشخص می کند و حالت های متعددی برای آن قابل انتخاب است، اما FormatSpacing تنها مشخص می کند که چه مقدار فاصله بین اطلاعاتی که در خروجی نمایش داده می شوند، وجود داشته باشد و صرفا 2 حالت برای آن وجود دارد و انتخاب بین این دو، به سلیقه کاربر بستگی دارد (خیلی مهم نیست و سلیقه ای می باشد).
برای دانستن حالت های فعلی که برای دو مورد Format و FormatSpacing انتخاب شده است، می توانید کد متلب (MATLAB) زیر را اجرا نمایید :
close all
clcget(0,’FormatSpacing’)
3 خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در متلب (MATLAB) می باشد.
نتیجه :
ans =
loose
ans =
short
بنابراین اگر به وضعیت فعلی نمایش اعداد در خروجی متلب (MATLAB)، عادت کرده اید، کد مورد نظر را اجرا کنید و دو حالتی که فعلا انتخاب شده اند را یادداشت کنید تا بعدا دوباره همان ها را انتخاب نمایید (چون ممکن است قبلا حالت نمایش اعداد در خروجی را تغییر داده باشید و بنابراین حتی برگرداندن وضعیت به حالت پیش فرض خود نرم افزار متلب (MATLAB) نیز باعث شود که حالت قبلی انتخاب شده توسط خود را مشاهده نکنید).
اکنون با فرض اینکه می دانید دو مقدار مربوط به Format و FormatSpacing در نرم افزار متلب (MATLAB) شما برابر چه حالت هایی انتخاب شده است (برای برگرداندن آنها در آینده)، اکنون می خواهیم مقداری کد متلب (MATLAB) اجرا کنیم تا تفاوت حالت های مختلف برای دستور format را در عمل مشاهده نماییم.
قبل از هر چیز، بد نیست که کل این حالت های قابل انتخاب را فهرست کنیم :
format long
format shortEng
format longEng
format shortG
format longG
format shortE
format longEformat +
format bank
format hex
format rat
format compact
format loose
برای مشاهده تفاوت بین این حالت ها، 4 متغیر را در نظر می گیریم که دارای تعداد رقم (رقم صحیح برای اعداد صحیح و رقم اعشاری برای اعداد اعشاری) زیاد باشند (دو مورد به صورت عدد صحیح و دو مورد به صورت عدد اعشاری می باشند) :
B = [123456789123456789123456789, 987654321987654321987654321];
C = 1.23456789123456789123456789;
D = [1.23456789123456789123456789, 9.87654321987654321987654321];
همان طور که مشاهده می کنید، دو متغیر دارای تنها یک عنصر هستند و دو متغیر دارای بیش از یک عنصر هستند، زیرا در برخی حالت ها، ویژگی هایی برای نمایش مقادیر ماتریس ها با بیش از یک عنصر به کار می رود که قصد داریم متوجه آنها شوید (مثلا در یک حالت، ضریبی بر مبنای عدد 10 از تمام مقادیر ماتریس، در خارج از ماتریس و به صورت ضرب در ماتریس نمایش داده می شود تا مقادیر درون ماتریس را به صورت ساده تر داشته باشیم و بتوانیم آنها را مقایسه کنیم).
بنابراین کد نهایی زیر را خواهیم داشت که در آن می توانید حالت های مختلف برای دستور format را برای نمایش مقادیر 4 متغیر مورد نظر در خروجی متلب (MATLAB)، مشاهده نمایید (در کدها، یک بار در وسط کدها و یک بار در انتهای کدها، حالت را به حالت پیش فرض (Default) تغییر داده ایم) :
close all
clcA = 123456789123456789123456789;
B = [123456789123456789123456789, 987654321987654321987654321];
C = 1.23456789123456789123456789;
D = [1.23456789123456789123456789, 9.87654321987654321987654321];
%—————- Format :
format % format short
disp(‘———————— format (format short) : ‘)
A
B
C
D
format long
disp(‘———————— format long : ‘)
A
B
C
D
format shortEng
disp(‘———————— format shortEng : ‘)
A
B
C
D
format longEng
disp(‘———————— format longEng : ‘)
A
B
C
D
format shortG
disp(‘———————— format shortG : ‘)
A
B
C
D
format longG
disp(‘———————— format longG : ‘)
A
B
C
D
format shortE
disp(‘———————— format shortE : ‘)
A
B
C
D
format longE
disp(‘———————— format longE : ‘)
A
B
C
D
% default : format = format short
format
format +
disp(‘———————— format + : ‘)
A
B
C
D
format bank
disp(‘———————— format bank : ‘)
A
B
C
D
format hex
disp(‘———————— format hex : ‘)
A
B
C
D
format rat
disp(‘———————— format rat : ‘)
A
B
C
D
% default
format % format short
%—————- FormatSpacing :
format compact
disp(‘———————— format compact : ‘)
A
B
C
D
format loose
disp(‘———————— format loose : ‘)
A
B
C
D
% default
format % format short
format loose
نتیجه :
———————— format (format short) :
A =
1.2346e+26
B =
1.0e+26 *
1.2346 9.8765
C =
1.2346
D =
1.2346 9.8765
———————— format long :
A =
1.234567891234568e+26
B =
1.0e+26 *
1.234567891234568 9.876543219876542
C =
1.234567891234568
D =
1.234567891234568 9.876543219876544
———————— format shortEng :
A =
123.4568e+024
B =
123.4568e+024 987.6543e+024
C =
1.2346e+000
D =
1.2346e+000 9.8765e+000
———————— format longEng :
A =
123.456789123457e+024
B =
123.456789123457e+024 987.654321987654e+024
C =
1.23456789123457e+000
D =
1.23456789123457e+000 9.87654321987654e+000
———————— format shortG :
A =
1.2346e+26
B =
1.2346e+26 9.8765e+26
C =
1.2346
D =
1.2346 9.8765
———————— format longG :
A =
1.23456789123457e+26
B =
1.23456789123457e+26 9.87654321987654e+26
C =
1.23456789123457
D =
1.23456789123457 9.87654321987654
———————— format shortE :
A =
1.2346e+26
B =
1.2346e+26 9.8765e+26
C =
1.2346e+00
D =
1.2346e+00 9.8765e+00
———————— format longE :
A =
1.234567891234568e+26
B =
1.234567891234568e+26 9.876543219876543e+26
C =
1.234567891234568e+00
D =
1.234567891234568e+00 9.876543219876544e+00
———————— format + :
A =
+
B =
++
C =
+
D =
++
———————— format bank :
A =
123456789123456790000000000.00
B =
123456789123456790000000000.00 987654321987654260000000000.00
C =
1.23
D =
1.23 9.88
———————— format hex :
A =
455987bf7cb8ec68
B =
455987bf7cb8ec68 458987bf80a01fca
C =
3ff3c0ca42d8b4db
D =
3ff3c0ca42d8b4db 4023c0ca45ddccf3
———————— format rat :
A =
123456789123456790000000000
B =
* *
C =
100/81
D =
100/81 800/81
———————— format compact :
A =
1.2346e+26
B =
1.0e+26 *
1.2346 9.8765
C =
1.2346
D =
1.2346 9.8765
———————— format loose :
A =
1.2346e+26
B =
1.0e+26 *
1.2346 9.8765
C =
1.2346
D =
1.2346 9.8765