English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

العددين في MATLAB

يدعم MATLAB أنواعًا مختلفة من الأرقام، بما في ذلك الأعداد الصحيحة والغير سالبة والأعداد العشرية ذات الدقة الواحدة والدوائية.

يمكنك اختيار تخزين أي عدد أو مجموعة أرقام كعدد صحيح أو عدد عشري ذو دقة واحدة.

جميع أنواع البيانات العددية تدعم العمليات الأساسية على الأنواع المتعددة والمجردات الرياضية.

تحويل إلى أنواع بيانات عددية مختلفة

يقدم MATLAB أدوات التحويل إلى أنواع بيانات عددية مختلفة -

وظيفةدور
doubleتحويل إلى عدد عشري ذو دقة ثنائية
singleتحويل إلى عدد عشري ذو دقة واحدة
int8تحويل إلى عدد سالب من 8 bits
int16تحويل إلى عدد سالب من 16 bits
int32تحويل إلى عدد سالب من 32 bits
int64تحويل إلى عدد سالب من 64 bits
uint8تحويل إلى عدد عشري غير سالب من 8 bits
uint16转换为16位无符号整数
uint32转换为32位无符号整数
uint64转换为64位无符号整数

مثال

创建一个脚本文件并输入以下代码-

x = single([5.32 3.47 6.28]) .* 7.5
x = double([5.32 3.47 6.28]) .* 7.5
x = int8([5.32 3.47 6.28]) .* 7.5
x = int16([5.32 3.47 6.28]) .* 7.5
x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5

عند تشغيل الملف، يظهر النتيجة التالية-

x =
   39.900 26.025 47.100
x =
   39.900 26.025 47.100
x =
   38 23 45
x =
   38 23 45
x =
   38 23 45
x =
   38 23 45

مثال

让我们再扩展一下前面的示例。创建一个脚本文件并输入以下代码-

x = int32([5.32 3.47 6.28]) .* 7.5
x = int64([5.32 3.47 6.28]) .* 7.5
x = num2cell(x)

عند تشغيل الملف، يظهر النتيجة التالية-

x =
   38 23 45
x =
   38 23 45
x = 
{
   [1,1] = 38
   [1,2] = 23
   [1,3] = 45
}

最小和最大整数

الوظائفintmax()وintmin()返回可以用所有类型的整数表示的最大值和最小值。

这两个函数都将整数数据类型作为参数,例如intmax(int8)或intmin(int64),并返回可以用整数数据类型表示的最大值和最小值。

مثال

以下示例说明了如何获取整数的最小和最大值。创建一个脚本文件并在其中写入以下代码-

%显示最小和最大有符号整数数据
str = 'The range for int8 is:\n\t%d to %d';
sprintf(str, intmin('int8'), intmax('int8'))
str = 'The range for int16 is:\n\t%d to %d';
sprintf(str, intmin('int16'), intmax('int16'))
str = 'The range for int32 is:\n\t%d to %d';
sprintf(str, intmin('int32'), intmax('int32'))
str = 'The range for int64 is:\n\t%d to %d';
sprintf(str, intmin('int64'), intmax('int64'))
 
% اعرض أصغر وأكبر عدد غير معتمد
str = "مجال uint8 هو:\n\t%d إلى %d";
sprintf(str, intmin('uint8'), intmax('uint8'))
str = "مجال uint16 هو:\n\t%d إلى %d";
sprintf(str, intmin('uint16'), intmax('uint16'))
str = "مجال uint32 هو:\n\t%d إلى %d";
sprintf(str, intmin('uint32'), intmax('uint32'))
str = "مجال uint64 هو:\n\t%d إلى %d";
sprintf(str, intmin('uint64'), intmax('uint64'))

عند تشغيل الملف، يظهر النتيجة التالية-

ans = مجال int8 هو:
	-128 إلى 127 
ans = مجال int16 هو:
	-32768 إلى 32767 
ans = مجال int32 هو:
	-2147483648 إلى 2147483647 
ans = مجال int64 هو:
	0 إلى 0 
ans = مجال uint8 هو:
	0 إلى 255 
ans = مجال uint16 هو:
	0 إلى 65535 
ans = مجال uint32 هو:
	0 إلى -1 
ans = مجال uint64 هو:
	0 إلى 18446744073709551616

أصغر وأكبر الأعداد العشرية

الوظائفوظيفة realmax()ووظيفة realmin()تعود القيم القصوى والأدنى التي يمكن تمثيلها باستخدام الأعداد العشرية.

عند استدعاء هذين الدوال باستخدام المعاملات "single"، يعود كلاهما بأكبر وأصغر القيم التي يمكن تمثيلها باستخدام نوع البيانات بدقة واحدة؛ وعند استدعاءهما باستخدام المعاملات "double"، يعود كلاهما بأكبر وأصغر القيم التي يمكن تمثيلها باستخدام نوع البيانات بدقة إثنائية.

مثال

الامثلة التالية توضح كيفية الحصول على أصغر وأكبر عدد عشري. قم بإنشاء ملف سكريبت وكتابة الكود التالي فيه-

%عرض الأصغر والأكبر من النوع الفردسي
%عدد عشري
str = 'نطاق العدد الفردسي هو:\n\t%g إلى %g وأيضاً\n\t%g إلى %g';
sprintf(str, -realmax('single'), -realmin('single'), ...
   realmin('single'), realmax('single'))
%عرض الأصغر والأكبر من النوع المزدوج
%عدد عشري
str = 'نطاق العدد المزدوج هو:\n\t%g إلى %g وأيضاً\n\t%g إلى %g';
sprintf(str, -realmax('double'), -realmin('double'), ...
   realmin('double'), realmax('double'))

عند تشغيل الملف، يظهر النتيجة التالية-

ans = نطاق العدد الفردسي هو:                                                  
        من -3.40282e+38 إلى -1.17549e-38 وأيضاً                                        
         من 1.17549e-38 إلى 3.40282e+38                                            
ans = نطاق العدد المزدوج هو:                                                  
        من -1.79769e+308 إلى -2.22507e-308 وأيضاً                                      
         من 2.22507e-308 إلى 1.79769e+308